diff --git a/.github/labeler.yml b/.github/labeler.yml index 5b585de45322..fe3c756cca78 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -42,6 +42,18 @@ Map Change: - "**/*.dmm" - "_maps/**" +Ship: +- changed-files: + - any-glob-to-any-file: + - "_maps/shuttles/**" + - "_maps/configs/**" + +Ruin: +- changed-files: + - any-glob-to-any-file: + - "_maps/RandomRuins/**" + - "code/datums/ruins/**" + # Any changes to .ogg files are marked as sound Sound: - 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 915b6021e98c..568e19a20a88 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -3,17 +3,34 @@ 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,40 +70,62 @@ 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 - if: always() - 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 @@ -106,39 +145,41 @@ jobs: tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS -DFULL_INIT run_all_tests: - if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Integration Tests + 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 @@ -163,7 +204,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 index e3cbda05749b..317356dcee00 100644 --- a/.github/workflows/rerun_flaky_tests.yml +++ b/.github/workflows/rerun_flaky_tests.yml @@ -1,9 +1,9 @@ name: Rerun/Report Flaky Tests on: workflow_run: - workflows: [Checks] + workflows: [Checks, TGS Test Suite] types: - - completed + - completed permissions: actions: write @@ -15,23 +15,23 @@ jobs: 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 }) + - 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 }) + - 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/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/__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 bda6fb742d53..dad43ef34082 100644 --- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm +++ b/_maps/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/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 6a81ff12aaac..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 @@ -139,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) @@ -259,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 @@ -383,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{ @@ -478,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" = ( @@ -657,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" = ( @@ -840,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" = ( @@ -1032,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" = ( @@ -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 @@ -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 312e11abe0f4..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,6 +1650,17 @@ }, /turf/open/floor/plasteel, /area/ruin/beach/oceantown/shop) +"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, /obj/structure/flora/ausbushes/brflowers, @@ -1902,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, @@ -2006,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, @@ -2255,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{ @@ -2393,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 @@ -2484,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 @@ -2556,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{ @@ -2675,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, @@ -2894,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 @@ -2993,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 @@ -3040,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, @@ -3133,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, @@ -3156,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" = ( @@ -3365,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/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/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, +/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" = ( @@ -3429,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 @@ -3504,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, @@ -3539,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, @@ -3568,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, @@ -3670,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) @@ -3731,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, @@ -3847,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 @@ -3904,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 @@ -3943,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, @@ -4098,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{ @@ -4110,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 @@ -4445,8 +4445,8 @@ YU "} (3,1,1) = {" qp -Ps -Er +Fr +Je sa sa lL @@ -4686,8 +4686,8 @@ pn pn pn qp -hF -yJ +vD +Fa sa sa sa @@ -4861,9 +4861,9 @@ Hu Ap Ip OT -Qf +zS Tj -bs +PL AY Un gb @@ -5372,8 +5372,8 @@ qp sa sa sa -CW -rL +Lt +GX sa sa sa @@ -5678,8 +5678,8 @@ YU (19,1,1) = {" qp sa -lZ -OP +Fo +FY sa sa sa @@ -6143,8 +6143,8 @@ Ca Go OK sa -wt -mr +XE +LF sa sa sa @@ -6720,7 +6720,7 @@ jv xh dT rh -Vr +OS xh Cf xh @@ -8219,8 +8219,8 @@ YU (52,1,1) = {" Ca OK -KC -dL +wv +PM sa sa Xk @@ -8296,8 +8296,8 @@ YU (53,1,1) = {" pn qp -UF -oz +eF +RV sa sa Sp @@ -9220,8 +9220,8 @@ YU (65,1,1) = {" qp sa -lZ -LN +Fo +bX sa sa yb @@ -9315,8 +9315,8 @@ MP vf UX UX -un -VQ +Oc +wb tI tI em @@ -9469,8 +9469,8 @@ MP Ho xe tI -XQ -SS +Kf +Ob tI tI GJ @@ -9593,7 +9593,7 @@ xh Al ND xh -Vr +OS gX bf xh @@ -9623,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 839e87815f93..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{ @@ -780,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 @@ -913,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 @@ -973,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{ @@ -981,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, @@ -1101,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 }, @@ -1422,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; @@ -1436,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 @@ -1593,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 @@ -1639,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 "} @@ -1696,13 +1686,13 @@ UY UY UY jZ -hS -hS -hS -hS -kl -hS -hS +jQ +jQ +jQ +jQ +xC +jQ +jQ Iv Iv "} @@ -1744,11 +1734,11 @@ TN UY UY jZ -hS -hS -hS -hS -hS +jQ +jQ +jQ +jQ +jQ Iv "} (6,1,1) = {" @@ -1790,11 +1780,11 @@ TN TN TN jZ -hS -hS -hS -hS -hS +jQ +jQ +jQ +jQ +jQ "} (7,1,1) = {" Iv @@ -1825,10 +1815,10 @@ lt lt lt lt -hS -hS -WX -hS +jQ +jQ +Cq +jQ db EE TN @@ -1836,10 +1826,10 @@ TN TN TN jZ -hS -hS -hS -hS +jQ +jQ +jQ +jQ "} (8,1,1) = {" Iv @@ -1871,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 @@ -1916,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 @@ -1961,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 @@ -1992,7 +1982,7 @@ Wa vb qN pz -bI +rf Ry Ty Ry @@ -2006,10 +1996,10 @@ lt lt lt lt -hS -hS -hS -hS +jQ +jQ +jQ +jQ VF UY TN @@ -2017,9 +2007,9 @@ TN TN TN bN -hS -hS -hS +jQ +jQ +jQ "} (12,1,1) = {" Iv @@ -2052,8 +2042,8 @@ lt lt lt lt -hS -hS +jQ +jQ VF TN TN @@ -2062,9 +2052,9 @@ TN TN tH bN -hS -hS -hS +jQ +jQ +jQ "} (13,1,1) = {" Iv @@ -2107,9 +2097,9 @@ TN TN TN bN -hS -hS -hS +jQ +jQ +jQ "} (14,1,1) = {" Iv @@ -2153,8 +2143,8 @@ TN TN TN jZ -hS -hS +jQ +jQ "} (15,1,1) = {" Iv @@ -2198,8 +2188,8 @@ EE TN TN bN -hS -hS +jQ +jQ "} (16,1,1) = {" Iv @@ -2239,12 +2229,12 @@ TN TN TN CB -hS +jQ TJ TN bN -hS -hS +jQ +jQ "} (17,1,1) = {" Iv @@ -2283,13 +2273,13 @@ SD xg TN bN -hS +jQ lt lt TN bN -hS -hS +jQ +jQ "} (18,1,1) = {" lt @@ -2333,8 +2323,8 @@ lt TN TN bN -hS -hS +jQ +jQ "} (19,1,1) = {" lt @@ -2378,8 +2368,8 @@ TN TN TN bN -hS -hS +jQ +jQ "} (20,1,1) = {" lt @@ -2404,7 +2394,7 @@ wS Te le ZO -rp +GA Uf tD Rn @@ -2423,8 +2413,8 @@ TN TN TN bN -hS -hS +jQ +jQ "} (21,1,1) = {" lt @@ -2468,8 +2458,8 @@ TN TN TN bN -hS -hS +jQ +jQ "} (22,1,1) = {" lt @@ -2513,15 +2503,15 @@ TN TN tH bN -hS -hS +jQ +jQ "} (23,1,1) = {" Iv lt lt -hS -hS +jQ +jQ lt lt lt @@ -2558,15 +2548,15 @@ lt TN TN bN -hS -hS +jQ +jQ "} (24,1,1) = {" Iv lt lt -hS -hS +jQ +jQ lt lt lt @@ -2603,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 @@ -2629,7 +2619,7 @@ oR Jd cU nR -bQ +FL lt lt lt @@ -2648,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 @@ -2692,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 @@ -2737,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 @@ -2782,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 @@ -2826,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 @@ -2870,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 @@ -2914,9 +2904,9 @@ TN TN EE CB -hS -hS -hS +jQ +jQ +jQ Iv Iv Iv @@ -2925,10 +2915,10 @@ Iv Iv Iv lt -hS -hS -hS -WX +jQ +jQ +jQ +Cq TJ TN TN @@ -2957,10 +2947,10 @@ EE EE EE CB -hS -hS -hS -hS +jQ +jQ +jQ +jQ Iv Iv Iv @@ -2971,9 +2961,9 @@ Iv lt lt lt -hS -hS -hS +jQ +jQ +jQ db TN TN @@ -2997,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 @@ -3017,9 +3007,9 @@ Iv Iv Iv Iv -hS -hS -hS +jQ +jQ +jQ db EE TN @@ -3036,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 @@ -3063,15 +3053,15 @@ Iv Iv lt lt -hS -hS -hS -hS +jQ +jQ +jQ +jQ db EE EE CB -hS +jQ lt lt lt @@ -3079,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 @@ -3109,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 @@ -3155,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..a698cf49ea18 --- /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/backpack/duffelbag/med/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/bulletproof/frontier, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier, +/obj/item/clothing/suit/armor/vest/bulletproof/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/prismwine{ + 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/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/effect/decal/cleanable/dirt, +/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/ammo_box/vickland_a308/empty, +/obj/item/ammo_box/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 42aa6b288469..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" = ( @@ -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 index d560e98b2f20..1a52405a3ec0 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm @@ -478,7 +478,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" = ( @@ -1028,7 +1028,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" = ( @@ -1086,7 +1086,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" = ( @@ -1181,7 +1181,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/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 557a50d9a11e..f681541a434a 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, @@ -1028,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 @@ -1371,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{ @@ -1752,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, @@ -2225,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) @@ -2414,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" = ( diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm index f6efbca453e2..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"; diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm index 75b7e390c540..2e1ae924a1d8 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm +++ b/_maps/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_46_30, /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" = ( diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 47455933ec16..4429e0b8779a 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/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" = ( @@ -989,7 +989,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 +1446,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 +3204,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 +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" = ( @@ -5764,9 +5764,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 +7185,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 +7411,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..dd98807a4958 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" = ( @@ -1116,7 +1116,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 @@ -2039,7 +2039,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 +2124,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" = ( @@ -2246,7 +2246,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 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm index 336588e2d807..47d8eb8a5b41 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm @@ -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/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm index 6ad3e8ba7458..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 768c6275cf56..64588e8452f5 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" = ( @@ -2287,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" = ( @@ -2717,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" = ( @@ -2985,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" = ( @@ -3149,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{ @@ -4062,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, @@ -4194,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 @@ -4525,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, @@ -4945,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" = ( @@ -5078,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{ diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index 183df18879da..4f7dd5413840 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/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, @@ -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) @@ -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" = ( @@ -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 }, @@ -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" = ( @@ -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) @@ -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) diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm index 3926cffbbf81..441df85eb4b6 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,15 +608,15 @@ /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 + pixel_y = 6; + start_empty = 1 }, /obj/item/ammo_casing/c9mm, /obj/item/ammo_casing/c9mm, @@ -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) @@ -811,6 +831,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 +877,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 +904,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 +937,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 +1076,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{ @@ -1129,8 +1154,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 +1172,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 +1276,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 +1376,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 +1408,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 +1424,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 +1591,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 +1627,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 +1652,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 +1701,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 +1858,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 +1890,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 +1900,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 +2039,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 +2115,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 +2147,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 +2184,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 @@ -2488,27 +2482,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 +2546,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) @@ -2689,8 +2668,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 +2711,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 +2789,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 +2898,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 +2926,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 +3035,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{ @@ -3098,13 +3095,13 @@ 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 +3120,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 +3159,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 +3208,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 +3240,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 +3418,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 +3455,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 +3490,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 +3503,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,13 +3575,6 @@ 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 @@ -3713,6 +3700,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 +3750,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 +3788,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 +3826,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 +3839,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 +3944,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 +3998,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 +4191,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 +4351,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 +4396,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 +4439,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 +4530,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, @@ -5136,7 +5134,7 @@ kO Rw zk tP -sm +cu RR wU ji @@ -5226,7 +5224,7 @@ uS zJ AY xT -Vg +JA jF RR RR @@ -5371,7 +5369,7 @@ aB tB eG sx -kd +jG RR Tl Ru @@ -5529,7 +5527,7 @@ rH mq qu uU -MS +He rH wX mX @@ -5560,7 +5558,7 @@ jM mk lE RR -Iz +Xc rT yS NE @@ -5602,12 +5600,12 @@ KA lL mv eh -yL +fG jM VO -Vf +Fe zk -sQ +PW rT yS qj @@ -5746,7 +5744,7 @@ UI SV jM xN -BT +Rb RR zk zk @@ -5796,7 +5794,7 @@ LD Rr zk tP -sm +cu RR NR KV @@ -5838,7 +5836,7 @@ Ja ql OV RR -dZ +aS Go Gd br @@ -5885,7 +5883,7 @@ KA cp yW RR -Os +kQ eF Ef RR 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 f18742a8aadb..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) @@ -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_cave_base.dmm b/_maps/RandomRuins/SandRuins/whitesands_cave_base.dmm new file mode 100644 index 000000000000..187b24b1d267 --- /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{ + mode = 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{ + mode = 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{ + mode = 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{ + mode = 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{ + mode = 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, +/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 c7b060634951..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" = ( 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..de8c8a6e044f --- /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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"dc" = ( +/obj/item/shard, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"eV" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"gV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"hI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement/whitesands, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"ir" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"iL" = ( +/obj/effect/turf_decal/weather/whitesands{ + dir = 5 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"ma" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/ruin/whitesands/e11manufactory/warehouse) +"tF" = ( +/obj/structure/railing{ + dir = 10; + layer = 4.1 + }, +/turf/open/floor/concrete/whitesands, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"tN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"uT" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/concrete/pavement/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"yi" = ( +/obj/structure/cable/orange{ + icon_state = "2-8" + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"zE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"CI" = ( +/obj/effect/turf_decal/weather/whitesands{ + dir = 6 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"EZ" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"FV" = ( +/obj/effect/decal/cleanable/greenglow, +/obj/effect/turf_decal/weather/whitesands/corner, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"HX" = ( +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/concrete/reinforced/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"Jn" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"LH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ + dir = 5 + }, +/turf/open/floor/concrete/pavement/whitesands, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"Mi" = ( +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"Ni" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/turf/open/floor/concrete/pavement/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"Pg" = ( +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"TU" = ( +/obj/effect/turf_decal/weather/whitesands{ + dir = 6 + }, +/turf/open/floor/concrete/pavement/whitesands, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"UN" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"Wu" = ( +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/concrete/pavement/whitesands, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/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, +/area/overmap_encounter/planetoid/sand/explored) +"Zg" = ( +/obj/machinery/conveyor, +/turf/open/floor/concrete/whitesands, +/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, +/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, +/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, +/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, +/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, +/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 6906e1dd2bed..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" = ( @@ -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/power_puzzle.dmm b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm index e126234531f2..c052a6f0cd04 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, @@ -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) @@ -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/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 6b75031ae8ba..c5acb2629e09 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -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" = ( @@ -1296,9 +1296,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" = ( @@ -1306,7 +1306,7 @@ pixel_y = -30 }, /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /turf/open/floor/wood, /area/ruin/space/has_grav/spacemall/dorms) "eV" = ( @@ -1323,7 +1323,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 @@ -1391,7 +1391,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" = ( @@ -1399,8 +1399,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" = ( @@ -1655,7 +1655,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) @@ -2516,9 +2516,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" = ( @@ -3111,7 +3111,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" = ( @@ -3255,7 +3255,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" = ( @@ -3638,7 +3638,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" = ( @@ -4048,7 +4048,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, @@ -5749,7 +5749,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" = ( @@ -5866,7 +5866,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) @@ -6451,8 +6451,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/exotic/prison_contraband, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plasteel, /area/ruin/space/has_grav/spacemall/maint) "yk" = ( @@ -6524,7 +6524,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" = ( @@ -6666,7 +6666,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" = ( @@ -6964,9 +6964,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) @@ -7269,9 +7269,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" = ( @@ -7469,7 +7469,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" = ( @@ -7631,7 +7631,7 @@ /area/ruin/space/has_grav/spacemall) "CR" = ( /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /obj/effect/decal/cleanable/blood, /obj/item/reagent_containers/food/snacks/spiderling{ pixel_y = 5; @@ -8230,9 +8230,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" = ( @@ -9438,7 +9438,7 @@ /area/ruin/space/has_grav/spacemall) "JE" = ( /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /turf/open/floor/wood, /area/ruin/space/has_grav/spacemall/dorms) "JF" = ( @@ -9569,7 +9569,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" = ( @@ -9999,9 +9999,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) @@ -10056,9 +10056,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 }, @@ -11266,7 +11266,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) @@ -11297,7 +11297,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 @@ -11311,7 +11311,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" = ( @@ -11865,7 +11865,7 @@ /area/ruin/space/has_grav/spacemall/maint) "SD" = ( /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /obj/item/toy/plush/slimeplushie{ pixel_y = -4; pixel_x = 4 @@ -12218,7 +12218,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" = ( @@ -12290,10 +12290,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" = ( @@ -12606,7 +12606,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" = ( @@ -12655,8 +12655,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, @@ -13459,7 +13459,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/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 dba9f5e3c3c9..bdfc9c75a4a1 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm @@ -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 adab5732e0c1..2cc76f2fb956 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm @@ -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..83c587268b34 --- /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/wasteplanet/ranged/rapid, +/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/wasteplanet/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/wasteplanet/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/wasteplanet/ranged/rapid, +/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/wasteplanet/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/wasteplanet/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/wasteplanet/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/wasteplanet/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/wasteplanet/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/wasteplanet/ranged/rapid, +/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/wasteplanet/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/wasteplanet/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/wasteplanet/ranged/rapid, +/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/wasteplanet/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/wasteplanet/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/wasteplanet/ranged/rapid, +/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/backpack/duffelbag/med/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_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm index a53934c91013..e3e0c20ef75f 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm @@ -152,10 +152,10 @@ /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" = ( @@ -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" = ( @@ -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{ @@ -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/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/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/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_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..0cefb4ca08b3 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -51,5 +51,5 @@ "slots": 2 } }, - "enabled": true + "enabled": false } diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index d7715e22b561..dd42d30c65dc 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -1133,6 +1133,13 @@ }, /turf/open/space, /area/centcom/ferry) +"apD" = ( +/obj/machinery/door/airlock/grunge{ + req_access = "109"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/centcom) "apF" = ( /obj/machinery/door/airlock/centcom{ name = "Auxillary Dock"; @@ -2647,7 +2654,7 @@ /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/item/melee/energy/sword/saber/red, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, @@ -3948,7 +3955,7 @@ /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/item/melee/energy/sword/saber/green, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, @@ -3964,34 +3971,34 @@ /area/centcom/evac) "aLV" = ( /turf/closed/indestructible/riveted, -/area/awaymission/errorroom) +/area/errorroom) "aLW" = ( /turf/closed/mineral/ash_rock, -/area/awaymission/errorroom) +/area/errorroom) "aLX" = ( /obj/structure/speaking_tile, /turf/closed/mineral/ash_rock, -/area/awaymission/errorroom) +/area/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) +/area/errorroom) "aLZ" = ( /turf/open/floor/plating/ashplanet/wateryrock{ initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0 }, -/area/awaymission/errorroom) +/area/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) +/area/errorroom) "aMb" = ( /obj/structure/signpost/salvation{ icon = 'icons/obj/structures.dmi'; @@ -4002,7 +4009,7 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0 }, -/area/awaymission/errorroom) +/area/errorroom) "aMc" = ( /obj/structure/lattice, /turf/open/space, @@ -4840,7 +4847,7 @@ "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/dress/skirt/color, /obj/item/clothing/under/shorts/black, /obj/item/clothing/under/pants/track, /obj/item/clothing/accessory/armband/deputy, @@ -5504,6 +5511,11 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"aVT" = ( +/obj/effect/turf_decal/corner/opaque/lime/half, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark, +/area/centcom) "aVU" = ( /obj/machinery/door/poddoor/shutters{ id = "XCCcustoms2"; @@ -6908,7 +6920,7 @@ /obj/effect/turf_decal/corner/opaque/blue{ dir = 8 }, -/obj/item/melee/transforming/energy/ctf, +/obj/item/melee/energy/ctf, /turf/open/floor/plasteel/dark, /area/ctf) "cEn" = ( @@ -6951,6 +6963,12 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/evac) +"cIk" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/telecomms_floor, +/area/centcom) "cIS" = ( /obj/structure/rack, /obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq, @@ -7264,6 +7282,14 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"dBb" = ( +/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) "dER" = ( /turf/open/floor/carpet/royalblue, /area/centcom) @@ -7836,7 +7862,7 @@ /obj/effect/turf_decal/corner/opaque/red{ dir = 8 }, -/obj/item/melee/transforming/energy/ctf, +/obj/item/melee/energy/ctf, /turf/open/floor/plasteel/dark, /area/ctf) "eDS" = ( @@ -8151,6 +8177,24 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel/dark, /area/centcom/control) +"feC" = ( +/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) "ffT" = ( /obj/structure/table/wood, /obj/structure/mirror{ @@ -8284,6 +8328,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"fuf" = ( +/obj/effect/turf_decal/spline/fancy/opaque/lime{ + dir = 1 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/dark, +/area/centcom) "fvB" = ( /obj/effect/turf_decal/industrial/warning{ dir = 8 @@ -8387,7 +8438,7 @@ /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/item/melee/energy/sword/saber/green, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, @@ -8627,6 +8678,13 @@ }, /turf/open/floor/carpet/royalblue, /area/centcom) +"gga" = ( +/obj/machinery/telecomms/relay/preset/pgf, +/obj/effect/turf_decal/spline/fancy/opaque/lime{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/centcom) "ggX" = ( /obj/machinery/pdapainter, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -9310,6 +9368,12 @@ }, /turf/open/floor/plasteel, /area/syndicate_mothership/control) +"hRd" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 10 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/centcom) "hRK" = ( /obj/effect/turf_decal/corner/opaque/red{ dir = 1 @@ -9336,6 +9400,10 @@ }, /turf/open/floor/circuit/red, /area/ctf) +"hUN" = ( +/obj/effect/turf_decal/corner/opaque/lime/half, +/turf/open/floor/plasteel/dark, +/area/centcom) "hVO" = ( /obj/machinery/computer/security/telescreen, /obj/structure/table/reinforced, @@ -10590,6 +10658,13 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"kkW" = ( +/obj/effect/turf_decal/spline/fancy/opaque/lime{ + dir = 1 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, +/area/centcom) "kmQ" = ( /obj/effect/turf_decal/syndicateemblem/middle/right, /obj/structure/chair/office/dark{ @@ -10597,6 +10672,12 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/centcom) +"knM" = ( +/obj/structure/table/reinforced, +/obj/machinery/fax/admin/pgf, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/telecomms_floor, +/area/centcom) "kqM" = ( /obj/machinery/shower{ dir = 4 @@ -11701,6 +11782,14 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/centcom) +"mzB" = ( +/obj/structure/railing, +/obj/structure/sign/flag/gezena{ + dir = 4; + pixel_x = -30 + }, +/turf/open/floor/plasteel/mono/dark, +/area/centcom) "mzM" = ( /obj/structure/fans/tiny, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -13837,6 +13926,18 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"qXV" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + icon = 'icons/obj/stairs.dmi'; + dir = 1 + }, +/area/centcom) "qYE" = ( /obj/structure/table/wood, /obj/item/phone{ @@ -14402,7 +14503,7 @@ /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/item/melee/energy/sword/saber/red, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, @@ -14592,6 +14693,16 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"sqO" = ( +/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) "ssv" = ( /obj/effect/turf_decal/industrial/warning{ dir = 9 @@ -14915,6 +15026,9 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"tcl" = ( +/turf/closed/indestructible/titanium/nodiagnonal, +/area/centcom) "tdN" = ( /obj/structure/chair{ dir = 8 @@ -15039,6 +15153,18 @@ }, /turf/open/floor/plasteel/white, /area/tdome/tdomeobserve) +"tmB" = ( +/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) "tos" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -15107,6 +15233,10 @@ color = "#808080" }, /area/centcom) +"tus" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/telecomms_floor, +/area/centcom) "tuw" = ( /obj/effect/turf_decal/industrial/loading{ dir = 8 @@ -15498,6 +15628,10 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"uuR" = ( +/obj/structure/railing, +/turf/open/floor/plasteel/mono/dark, +/area/centcom) "uuY" = ( /obj/effect/turf_decal/syndicateemblem/bottom/right, /turf/open/floor/mineral/plastitanium/red, @@ -15763,6 +15897,13 @@ }, /turf/open/floor/plasteel/dark, /area/ctf) +"vac" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/railing/corner, +/turf/open/floor/plasteel/mono/dark, +/area/centcom) "vcL" = ( /obj/machinery/computer, /obj/effect/turf_decal/corner/transparent/bar, @@ -16683,6 +16824,15 @@ /obj/effect/turf_decal/syndicateemblem/top/middle, /turf/open/floor/mineral/plastitanium/red, /area/centcom) +"xAA" = ( +/obj/structure/railing, +/obj/structure/sign/flag/gezena{ + dir = 8; + pixel_y = 0; + pixel_x = 30 + }, +/turf/open/floor/plasteel/mono/dark, +/area/centcom) "xEx" = ( /obj/structure/chair, /obj/effect/turf_decal/industrial/warning{ @@ -30429,13 +30579,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +tcl +tcl +tcl +tcl +apD +tcl aaa aPu aPu @@ -30686,13 +30836,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +knM +hRd +mzB +gga +aVT +tcl aaa aPu nYZ @@ -30943,13 +31093,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +tmB +sqO +uuR +kkW +hUN +tcl aaa aPu qLN @@ -31200,13 +31350,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +cIk +hRd +vac +qXV +hUN +tcl aaa aPu wAh @@ -31457,13 +31607,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +tus +sqO +uuR +feC +hUN +tcl aaa aPu sZJ @@ -31714,13 +31864,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +dBb +hRd +xAA +fuf +aVT +tcl aaa aPu lKP @@ -31971,13 +32121,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +tcl +tcl +tcl +tcl +tcl +apD +tcl aaa aPu aPu 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/nt_asteroid_40x20.dmm b/_maps/outpost/hangar/nt_asteroid_40x20.dmm index 312e0443aeea..ab49a101ee1e 100644 --- a/_maps/outpost/hangar/nt_asteroid_40x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_40x20.dmm @@ -383,7 +383,7 @@ }, /area/hangar) "kU" = ( -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /obj/item/stack/sheet/mineral/wood{ pixel_x = -6 }, @@ -392,7 +392,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 }, @@ -861,7 +861,7 @@ }, /area/hangar) "vh" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/random/trash/grille_or_waste, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating{ planetary_atmos = 1 diff --git a/_maps/outpost/hangar/nt_asteroid_40x40.dmm b/_maps/outpost/hangar/nt_asteroid_40x40.dmm index 005b657e38ee..eab944babc1c 100644 --- a/_maps/outpost/hangar/nt_asteroid_40x40.dmm +++ b/_maps/outpost/hangar/nt_asteroid_40x40.dmm @@ -1070,10 +1070,7 @@ /area/hangar) "NE" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/spawner/lootdrop/glowstick{ - pixel_x = 5; - pixel_y = 9 - }, +/obj/effect/spawner/random/decoration/glowstick, /turf/open/floor/plating{ planetary_atmos = 1 }, @@ -1333,7 +1330,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/outpost/hangar/nt_asteroid_56x20.dmm b/_maps/outpost/hangar/nt_asteroid_56x20.dmm index 11ba5baac070..070f2a949044 100644 --- a/_maps/outpost/hangar/nt_asteroid_56x20.dmm +++ b/_maps/outpost/hangar/nt_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 }, @@ -1024,8 +1024,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{ @@ -1254,10 +1254,7 @@ /area/hangar) "Wp" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/spawner/lootdrop/glowstick{ - pixel_x = 5; - pixel_y = 9 - }, +/obj/effect/spawner/random/decoration/glowstick, /turf/open/floor/plating{ icon_state = "panelscorched"; planetary_atmos = 1 diff --git a/_maps/outpost/hangar/nt_asteroid_56x40.dmm b/_maps/outpost/hangar/nt_asteroid_56x40.dmm index 5d66d8966d0b..020ab48b8d9f 100644 --- a/_maps/outpost/hangar/nt_asteroid_56x40.dmm +++ b/_maps/outpost/hangar/nt_asteroid_56x40.dmm @@ -277,8 +277,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{ @@ -806,7 +806,7 @@ /area/hangar) "Hs" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plating{ planetary_atmos = 1 }, @@ -963,10 +963,7 @@ /area/hangar) "KT" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/spawner/lootdrop/glowstick{ - pixel_x = 5; - pixel_y = 9 - }, +/obj/effect/spawner/random/decoration/glowstick, /turf/open/floor/plating{ icon_state = "panelscorched"; planetary_atmos = 1 diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm index 86a2a8d102b1..b10b86822c8c 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" = ( @@ -1350,7 +1350,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 +1430,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 +1703,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 +1858,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) @@ -2597,8 +2597,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 +2670,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 +2782,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 +2988,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) @@ -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 }, @@ -4858,8 +4858,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 +4912,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 +4984,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 +4995,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" = ( @@ -5189,7 +5189,7 @@ /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 +5222,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 +5394,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) @@ -5853,7 +5853,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, @@ -6213,8 +6213,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 +6454,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 +6531,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" = ( @@ -6718,7 +6718,7 @@ /area/outpost/crew/cryo) "Pw" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance/four, +/obj/effect/spawner/random/maintenance/four, /turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms/office) "Px" = ( @@ -6914,8 +6914,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 +7079,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 +7166,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 +7390,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 +7400,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 +7556,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 +7608,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 +7618,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 @@ -7789,7 +7789,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 +7897,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, @@ -8004,7 +8004,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 +8029,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 }, @@ -8161,7 +8161,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 +8332,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 @@ -8528,8 +8528,8 @@ /area/outpost/hallway/central) "ZP" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/tool_surgery_common, -/obj/effect/spawner/lootdrop/maintenance/four, +/obj/effect/spawner/random/medical/surgery_tool/common, +/obj/effect/spawner/random/maintenance/four, /turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms/office) "ZU" = ( diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index d5af45bfef2d..179aa234e780 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -63,7 +63,7 @@ /area/outpost/hallway/starboard) "aw" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance/three, +/obj/effect/spawner/random/maintenance/three, /obj/machinery/light/small/broken/directional/south, /turf/open/floor/plating/rust, /area/outpost/maintenance/aft) @@ -951,7 +951,7 @@ dir = 8 }, /obj/effect/turf_decal/box/corners, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) "dF" = ( @@ -1678,7 +1678,7 @@ dir = 8 }, /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /obj/item/paper/crumpled, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) @@ -1911,7 +1911,7 @@ /turf/closed/mineral/random/snow, /area/outpost/crew/cryo) "hd" = ( -/obj/effect/spawner/lootdrop/maintenance/three, +/obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/outpost/maintenance/aft) "he" = ( @@ -2178,7 +2178,7 @@ /area/outpost/crew/bar) "im" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/spawner/random/maintenance/two, /obj/structure/grille/broken, /turf/open/floor/plating{ icon_state = "foam_plating" @@ -2337,7 +2337,7 @@ /area/outpost/vacant_rooms) "iW" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/random/trash/grille_or_waste, /obj/structure/sign/poster/contraband/random{ pixel_x = 32; pixel_y = -32 @@ -5481,7 +5481,7 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "tD" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/random/trash/grille_or_waste, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -6814,7 +6814,7 @@ "xV" = ( /obj/machinery/light/dim/directional/south, /obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/outpost/maintenance/fore) "xW" = ( @@ -6990,7 +6990,7 @@ }, /area/outpost/maintenance/fore) "yE" = ( -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -7386,7 +7386,7 @@ /area/outpost/engineering/atmospherics) "zY" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plating/rust, /area/outpost/maintenance/aft) "zZ" = ( @@ -7614,7 +7614,7 @@ icon_state = "box_corners"; dir = 8 }, -/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/spawner/random/maintenance/two, /obj/machinery/airalarm/directional/west, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) @@ -7899,7 +7899,7 @@ "BI" = ( /obj/machinery/door/window/brigdoor/southright, /obj/structure/rack, -/obj/effect/spawner/lootdrop/glowstick, +/obj/effect/spawner/random/decoration/glowstick, /turf/open/floor/concrete/tiles, /area/outpost/hallway/central) "BJ" = ( @@ -10357,7 +10357,7 @@ /obj/effect/turf_decal/box/corners{ dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) "Kj" = ( @@ -10560,7 +10560,7 @@ /area/outpost/hallway/starboard) "KW" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, /area/outpost/maintenance/aft) "KX" = ( @@ -11767,7 +11767,7 @@ "Pb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/random/trash/grille_or_waste, /obj/item/stack/sheet/mineral/wood{ pixel_x = -6 }, @@ -12080,7 +12080,7 @@ /obj/effect/turf_decal/box/corners{ dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/spawner/random/maintenance/two, /obj/item/paperplane, /obj/item/radio/intercom/directional/south, /obj/machinery/firealarm/directional/south, @@ -12344,7 +12344,7 @@ "Ra" = ( /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/fore) "Rc" = ( @@ -12447,7 +12447,7 @@ /area/outpost/maintenance/aft) "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" }, @@ -12633,7 +12633,7 @@ "RZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /obj/item/stack/rods/ten{ pixel_x = 9 }, @@ -12648,7 +12648,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" = ( @@ -12868,8 +12868,8 @@ "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/effect/spawner/random/maintenance/two, +/obj/effect/spawner/random/clothing/kittyears_or_rabbitears, /obj/structure/grille/broken, /obj/effect/turf_decal/box/white, /turf/open/floor/plating{ @@ -13743,7 +13743,7 @@ /area/outpost/hallway/central) "Wj" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/spawner/random/maintenance/two, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) "Wn" = ( @@ -14038,7 +14038,7 @@ /obj/structure/railing{ layer = 3.1 }, -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/random/trash/grille_or_waste, /obj/item/trash/can{ pixel_x = -8; pixel_y = -6 diff --git a/_maps/outpost/nanotrasen_ice.dmm b/_maps/outpost/nanotrasen_ice.dmm index 70fb809c4c95..cfd32ad951ae 100644 --- a/_maps/outpost/nanotrasen_ice.dmm +++ b/_maps/outpost/nanotrasen_ice.dmm @@ -943,7 +943,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 +1168,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" = ( @@ -1809,7 +1809,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" = ( @@ -2177,7 +2177,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" = ( @@ -3267,7 +3267,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{ @@ -3476,7 +3476,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, @@ -4002,7 +4002,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 @@ -4396,7 +4396,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{ @@ -4552,7 +4552,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 }, @@ -4840,7 +4840,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) @@ -6062,7 +6062,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" = ( @@ -7551,7 +7551,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 @@ -7688,7 +7688,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 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..d1b77ddf5724 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, @@ -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 @@ -1460,10 +1459,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 +2021,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 +2164,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 +2807,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 7f8e7b569c68..9d36cb61c748 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -257,7 +257,7 @@ /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" = ( @@ -1442,7 +1442,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" = ( @@ -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" = ( @@ -1889,7 +1889,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" = ( @@ -2083,7 +2083,7 @@ /area/ship/external/dark) "Gl" = ( /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /obj/machinery/airalarm/directional/east, /obj/item/radio/intercom/directional/south, /turf/open/floor/carpet, @@ -2213,7 +2213,7 @@ "Is" = ( /obj/structure/closet/crate/science, /obj/item/paicard, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/ship/cargo) "IF" = ( @@ -2301,7 +2301,7 @@ /area/ship/storage/eva) "JH" = ( /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /obj/structure/cable/yellow{ icon_state = "4-10" }, @@ -2433,10 +2433,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, @@ -2617,28 +2617,13 @@ /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 - }, +/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/effect/spawner/random/decoration/glowstick, +/obj/effect/spawner/random/decoration/glowstick, /turf/open/floor/plating, /area/ship/storage/eva) "NW" = ( @@ -2751,11 +2736,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" }, @@ -3405,7 +3390,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" }, @@ -3473,7 +3458,7 @@ /area/ship/engineering) "ZQ" = ( /obj/structure/bed, -/obj/item/bedsheet/dorms, +/obj/effect/spawner/random/bedsheet, /turf/open/floor/carpet, /area/ship/crew/dorm) "ZR" = ( 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 f9504be9d31e..7783dff02df5 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" = ( @@ -663,7 +663,7 @@ }, /obj/item/storage/box/ammo/a12g_rubbershot, /obj/item/gun/ballistic/shotgun/doublebarrel/presawn{ - spawnwithmagazine = 0 + default_ammo_type = 0 }, /obj/structure/cable/pink{ icon_state = "4-10" @@ -905,7 +905,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 +1212,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 +1789,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) @@ -1876,7 +1876,7 @@ }, /obj/effect/decal/cleanable/oil, /obj/item/storage/box/ammo/a12g_buckshot, -/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag, +/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..6ef4d8035080 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{ @@ -2873,9 +2933,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 +3014,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 +3071,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 +3444,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 +3471,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 +3551,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 +3618,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 +3843,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 +3854,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 +3873,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 +3900,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 +4024,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 +4141,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 +4420,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 +4434,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 +4497,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 +4517,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 +4603,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 +4848,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 +4897,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 +5125,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 +5155,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 +5321,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 +5367,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 +5441,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 +5535,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 +5558,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 +5622,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 +6174,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 +6430,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 +6535,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 +6571,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 +6625,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 +6829,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 +6918,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 +6965,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 +7154,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 +7184,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 +7279,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 +7312,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 +7371,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 +7502,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 +8310,9 @@ pZ Qy Hx jC -GN +SS EX -QI +Em Kl IX uD @@ -8429,9 +8433,9 @@ Tz Qy Tf jC -GN +SS EX -QI +Em Kl FW yf @@ -8676,7 +8680,7 @@ Qy kl Kl RH -GN +SS dG Kl IX @@ -8838,7 +8842,7 @@ kv FX Pw Pw -wV +wO Pw Pw Pw @@ -8872,17 +8876,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 +8917,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 +8958,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 +8999,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 +9040,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 bacc9295800c..b3b83b8fdfdf 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" = ( @@ -1412,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; @@ -1727,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, @@ -1991,7 +1992,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" @@ -2141,7 +2142,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, diff --git a/_maps/shuttles/independent/independent_raleigh.dmm b/_maps/shuttles/independent/independent_raleigh.dmm new file mode 100644 index 000000000000..906af974bfe5 --- /dev/null +++ b/_maps/shuttles/independent/independent_raleigh.dmm @@ -0,0 +1,6330 @@ +//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/ammo_box/a357, +/obj/item/ammo_box/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) +"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 = 3; + width = 7; + 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) +"Ch" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/hull/reinforced, +/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 + }, +/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) +"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 +hN +WD +OV +OV +OV +OV +OV +mq +OV +OV +OV +OV +Ch +hN +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 +WD +WD +hN +XG +BH +OV +BH +BH +OV +BH +Cl +Dw +PS +WD +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 d87ae083832b..d4373e7920fb 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" = ( @@ -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" = ( @@ -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..83af7832fd56 --- /dev/null +++ b/_maps/shuttles/independent/independent_scarab.dmm @@ -0,0 +1,4982 @@ +//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_rubbershot{ + pixel_x = -4; + pixel_y = 9 + }, +/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 2f72a954029f..bc233e5a1733 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 @@ -441,7 +437,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"; @@ -463,7 +459,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 }, @@ -1177,8 +1173,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" = ( @@ -1223,7 +1219,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 @@ -2361,7 +2357,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 }, @@ -2729,14 +2725,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" = ( @@ -2978,7 +2974,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 @@ -3051,7 +3047,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 @@ -3098,7 +3094,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" }, @@ -3206,7 +3202,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 }, @@ -3635,7 +3631,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 86ddde732a80..3845948c04d8 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 }, @@ -3103,7 +3103,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 }, @@ -4364,7 +4364,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; @@ -4653,7 +4653,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" = ( @@ -4682,7 +4682,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 @@ -4774,7 +4774,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 }, @@ -4858,8 +4858,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" = ( @@ -5435,9 +5437,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 4a835b39e7a8..f459ec3dfe16 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 70f32bfb60f2..de835b016463 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, @@ -2487,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" = ( @@ -2537,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 }, @@ -2660,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" = ( @@ -2671,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, @@ -2955,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" = ( @@ -3153,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" = ( @@ -3359,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" = ( @@ -3548,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" = ( @@ -3652,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 }, @@ -4304,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, @@ -4340,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" = ( @@ -4494,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 c6f9e34a653d..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, @@ -361,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" = ( @@ -489,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" = ( @@ -572,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" = ( @@ -968,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, @@ -1390,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" = ( @@ -2043,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, @@ -2228,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" = ( diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 79ec309513f8..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, @@ -2636,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" = ( @@ -2879,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" = ( @@ -3028,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 }, @@ -3041,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 @@ -4081,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" = ( @@ -4159,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" = ( @@ -4237,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" = ( @@ -4499,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" = ( @@ -4545,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 }, @@ -4866,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 @@ -5212,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" = ( @@ -5224,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" @@ -5286,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" = ( @@ -5309,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) @@ -5495,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" = ( @@ -5762,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{ @@ -6000,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" = ( @@ -6152,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" = ( @@ -6245,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 @@ -6299,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" = ( @@ -6351,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) @@ -6524,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{ @@ -6642,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" = ( @@ -6724,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" = ( @@ -6895,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) @@ -7112,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, @@ -7153,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" = ( @@ -7234,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" = ( @@ -7286,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" @@ -7415,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" = ( @@ -7442,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{ @@ -7505,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 @@ -7567,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, @@ -7621,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, @@ -7690,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" = ( @@ -7807,36 +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/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/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{ @@ -7889,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" = ( @@ -8018,7 +8022,7 @@ iD Lo dw ge -Je +GU Yp ZE rV @@ -8077,7 +8081,7 @@ ZU eC Zu SK -ZA +VD vp HB MS @@ -8181,9 +8185,9 @@ aD MC zR vp -EQ -es -OJ +KW +br +WE Xn gP qh @@ -8604,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 5bff6dc4800a..7a23b2820cad 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" = ( @@ -177,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" = ( @@ -517,8 +518,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" = ( @@ -586,9 +590,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 @@ -1201,6 +1205,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" = ( @@ -1491,7 +1496,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) @@ -2695,8 +2700,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" = ( @@ -4416,7 +4421,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, @@ -4651,7 +4656,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" = ( @@ -5101,6 +5106,7 @@ /obj/machinery/light/small/directional/north, /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" = ( @@ -5397,7 +5403,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/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index 9ea8b60d9b89..273085c61355 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -904,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" = ( @@ -914,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, @@ -1520,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, @@ -1968,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, @@ -2204,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, @@ -2217,6 +2218,9 @@ /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" = ( @@ -3075,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" = ( @@ -3145,7 +3150,7 @@ "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" @@ -3217,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" = ( @@ -3243,6 +3248,7 @@ /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" = ( @@ -3252,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{ diff --git a/_maps/shuttles/minutemen/minutemen_atlas.dmm b/_maps/shuttles/minutemen/minutemen_atlas.dmm new file mode 100644 index 000000000000..282b76c948ea --- /dev/null +++ b/_maps/shuttles/minutemen/minutemen_atlas.dmm @@ -0,0 +1,6010 @@ +//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 = "19" + }, +/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 + }, +/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 + }, +/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..8e05518ed21e 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -252,11 +252,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 +497,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) @@ -1039,14 +1039,23 @@ /area/ship/crew) "dI" = ( /obj/structure/table, -/obj/item/paper_bin, -/obj/item/folder/yellow, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 5; + pixel_y = 5 + }, /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 +1098,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) @@ -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" = ( @@ -1874,9 +1885,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; 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..ce1882f1745f 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, @@ -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/a12g_rubbershot, /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 a02ec78fc9e6..538c5717a840 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, @@ -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; @@ -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 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index 95b61c204b54..81d596c4c484 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -240,9 +240,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" = ( @@ -576,9 +576,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" = ( @@ -667,7 +667,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 +807,7 @@ pixel_x = 21; pixel_y = 12 }, +/obj/item/stamp/nanotrasen/ns, /turf/open/floor/plasteel/dark, /area/ship/cargo) "cz" = ( @@ -2000,7 +2001,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 +2173,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" = ( @@ -2520,8 +2521,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 +2684,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 +2804,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 +2849,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 +3067,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, @@ -3701,11 +3704,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 a5b28853a67d..1c4f2e67ef7a 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) @@ -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) @@ -2344,7 +2344,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 +2759,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 }, @@ -2996,7 +2996,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 +3298,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 +3361,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, @@ -4677,7 +4677,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 +4793,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,7 +4918,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" = ( @@ -5268,7 +5268,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 +5690,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 +5703,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 +5798,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) @@ -6461,7 +6461,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 +6897,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 +7129,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 +7494,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 +7740,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 +7764,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) @@ -8533,7 +8533,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/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index d70424c08c84..67cd0c4e7869 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -138,10 +138,10 @@ }, /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 }, +/obj/item/clothing/mask/gas/vigilitas, /turf/open/floor/plasteel/lightgrey, /area/ship/storage/equip) "aO" = ( @@ -243,7 +243,7 @@ /obj/item/gps, /obj/item/ammo_box/magazine/co9mm, /obj/item/storage/belt/security/webbing, -/obj/item/storage/pistolcase/commander, +/obj/item/storage/guncase/pistol/commander, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/structure/window/reinforced/tinted{ dir = 4 @@ -1137,7 +1137,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/firealarm/directional/east, -/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1203,11 +1203,8 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/stamp/captain{ - pixel_x = 7 - }, /obj/item/folder/blue{ - pixel_x = 8; + pixel_x = -1; pixel_y = 10 }, /obj/effect/turf_decal/techfloor{ @@ -1221,6 +1218,9 @@ pixel_x = -7; pixel_y = -1 }, +/obj/item/stamp/nanotrasen/vigilitas/loss_prevention{ + pixel_x = 7 + }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "iH" = ( @@ -1582,7 +1582,7 @@ name = "Ready Room"; req_ship_access = 1; req_one_access_txt = "50,10,5,1,20"; - req_one_access = list(50, 10, 5, 1, 20) + req_one_access = list(50,10,5,1,20) }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 @@ -2097,12 +2097,13 @@ 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 }, +/obj/item/radio/headset/alt, +/obj/item/gear_pack/anglegrinder, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "pA" = ( @@ -2501,7 +2502,7 @@ /obj/machinery/door/airlock/command{ dir = 4; name = "Bridge"; - req_one_access_txt = list(50, 10, 5, 1, 20) + req_one_access_txt = list(50,10,5,1,20) }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -3232,9 +3233,9 @@ name = "Medical Specialist's Storage Unit" }, /obj/item/clothing/suit/space/hardsuit/ert/lp/med, -/obj/item/clothing/mask/breath, /obj/item/tank/internals/oxygen, /obj/effect/turf_decal/industrial/outline/blue, +/obj/item/clothing/mask/gas/vigilitas, /turf/open/floor/plasteel/lightgrey, /area/ship/storage/equip) "zc" = ( @@ -3433,15 +3434,15 @@ pixel_y = 6; req_one_access_txt = "50,10,5,1,20"; req_ship_access = 1; - req_one_access = list(50, 10, 5, 1, 20) + req_one_access = list(50,10,5,1,20) }, /obj/item/clothing/suit/space/hardsuit/ert/lp/sec, /obj/machinery/suit_storage_unit/inherit{ name = "Security Specialist's Storage Unit" }, -/obj/item/clothing/mask/breath, /obj/item/tank/internals/oxygen/red, /obj/effect/turf_decal/industrial/outline/red, +/obj/item/clothing/mask/gas/vigilitas, /turf/open/floor/plasteel/lightgrey, /area/ship/storage/equip) "Bg" = ( @@ -3923,7 +3924,7 @@ /turf/open/floor/plasteel/dark, /area/ship/hallway/port) "EP" = ( -/obj/machinery/vending/snack/random, +/obj/effect/spawner/random/vending/snack, /turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ff" = ( @@ -4058,8 +4059,8 @@ }, /obj/machinery/suit_storage_unit/inherit, /obj/item/clothing/suit/space/hardsuit/ert/lp, -/obj/item/clothing/mask/breath, /obj/item/tank/internals/emergency_oxygen/double, +/obj/item/clothing/mask/gas/vigilitas, /turf/open/floor/plasteel/tech, /area/ship/crew/dorm/captain) "Ge" = ( @@ -4187,7 +4188,7 @@ pixel_x = 7; pixel_y = -20 }, -/obj/item/storage/pistolcase/egun, +/obj/item/storage/guncase/energy/egun, /obj/item/megaphone/command, /obj/structure/closet/secure_closet/lp/lieutenant, /obj/effect/turf_decal/techfloor{ @@ -4272,7 +4273,7 @@ id = "Ranger_Port_maint_shut"; req_ship_access = 1 }, -/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating, /area/ship/maintenance/port) "Ih" = ( @@ -4721,7 +4722,7 @@ /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) }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) @@ -5558,11 +5559,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 }, @@ -5887,10 +5888,10 @@ /obj/machinery/suit_storage_unit/inherit{ name = "Engineering Specialist's Storage Unit" }, -/obj/item/clothing/mask/breath, /obj/item/clothing/suit/space/hardsuit/ert/lp/engi, /obj/item/tank/internals/oxygen/yellow, /obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/clothing/mask/gas/vigilitas, /turf/open/floor/plasteel/lightgrey, /area/ship/storage/equip) "XA" = ( @@ -6250,14 +6251,14 @@ name = "Armory"; req_ship_access = 1 }, -/obj/item/storage/pistolcase/commander, +/obj/item/storage/guncase/pistol/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/item/storage/guncase/pistol, /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 5 }, @@ -6267,7 +6268,7 @@ /obj/effect/turf_decal/siding/thinplating/dark{ dir = 5 }, -/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, +/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber, /turf/open/floor/plasteel/lightgrey, /area/ship/storage/equip) "ZW" = ( diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm index 0c740842e5d9..4ebc29275cd9 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 @@ -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" = ( @@ -1499,16 +1491,20 @@ /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) @@ -2373,36 +2369,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 +2660,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 +2938,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 +3018,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" = ( @@ -3426,6 +3432,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 +3621,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{ @@ -4766,7 +4764,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 +5003,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 +5197,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 +5206,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 +5644,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" = ( @@ -5957,45 +5962,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/radio/headset/pgf/captain{ + pixel_x = -10 }, -/obj/item/gun/energy/kalix/pistol{ - pixel_y = -16 +/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 +6211,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 +6241,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) @@ -6341,11 +6360,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" = ( @@ -7431,7 +7455,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..c1d91bde84d7 --- /dev/null +++ b/_maps/shuttles/pgf/pgf_elated_bolide.dmm @@ -0,0 +1,9932 @@ +//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{ + can_move_docking_ports = 1; + 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{ + icon_state = "0-1" + }, +/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{ + dir = 4 + }, +/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{ + dir = 4 + }, +/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{ + dir = 2; + 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{ + dir = 4 + }, +/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; + pixel_y = 0 + }, +/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{ + dir = 4 + }, +/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; + pixel_y = 0 + }, +/obj/item/clothing/shoes/combat/gezena{ + pixel_x = 3; + pixel_y = 0 + }, +/obj/item/clothing/shoes/combat/gezena{ + pixel_x = 3; + pixel_y = 0 + }, +/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, +/turf/open/floor/plasteel/tech, +/area/ship/security/armory) +"jB" = ( +/obj/structure/sink{ + pixel_y = 18; + dir = 2 + }, +/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{ + dir = 2; + 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{ + icon_state = "0-1" + }, +/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" + }, +/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"; + dir = 2 + }, +/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"; + dir = 2; + 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 = -6; + pixel_y = -10 + }, +/obj/item/folder/pgf/blue/bolide{ + pixel_x = -8; + pixel_y = 3 + }, +/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/backpack/duffelbag/med/surgery{ + pixel_y = 9 + }, +/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{ + pixel_y = 0; + 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"; + dir = 2 + }, +/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'; + dir = 2 + }, +/area/ship/cargo) +"pl" = ( +/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ + dir = 4 + }, +/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"; + dir = 2 + }, +/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{ + dir = 4 + }, +/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{ + dir = 4 + }, +/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"; + dir = 2 + }, +/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"; + dir = 2; + 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{ + dir = 4 + }, +/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/fax{ + pixel_y = 0 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 1 + }, +/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{ + dir = 4 + }, +/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; + dir = 2; + 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; + pixel_y = 0 + }, +/obj/item/clothing/shoes/combat/gezena{ + pixel_x = 3; + pixel_y = 0 + }, +/obj/item/clothing/shoes/combat/gezena{ + pixel_x = 3; + pixel_y = 0 + }, +/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 + }, +/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{ + pixel_y = 0; + 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{ + icon_state = "0-1" + }, +/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{ + dir = 4 + }, +/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"; + dir = 2 + }, +/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_y = 0; + 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'; + dir = 2 + }, +/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{ + dir = 2; + 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{ + icon_state = "0-1" + }, +/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{ + dir = 2 + }, +/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{ + dir = 2; + 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"; + pixel_y = 0 + }, +/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, +/obj/machinery/door/airlock/security{ + dir = 2; + name = "Engineering Storage"; + req_one_access_txt = "1" + }, +/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'; + dir = 2 + }, +/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{ + icon_state = "0-1" + }, +/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{ + icon_state = "0-1" + }, +/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{ + pixel_y = 0; + 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{ + dir = 2; + 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..643eafafeaf9 --- /dev/null +++ b/_maps/shuttles/pgf/pgf_woeful_cthonian.dmm @@ -0,0 +1,4739 @@ +//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 = 8 + }, +/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; + pixel_y = 0 + }, +/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 = 8 + }, +/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_y = 0; + 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 = 8 + }, +/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_y = 0; + pixel_x = 26 + }, +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/button/door{ + dir = 2; + pixel_y = 22; + pixel_x = -8; + id = "cth_bridge"; + name = "bridge shutter control" + }, +/obj/structure/platform/ship_two{ + dir = 8 + }, +/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 + }, +/obj/structure/platform/ship_two{ + dir = 8 + }, +/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_y = 0; + 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 = 4 + }, +/obj/item/desk_flag/gezena{ + pixel_y = 0; + pixel_x = 8 + }, +/obj/structure/platform/ship_two{ + dir = 8 + }, +/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{ + pixel_y = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/item/folder/pgf/empty_sheets{ + pixel_x = 4; + pixel_y = 4 + }, +/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 + }, +/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; + pixel_y = 0 + }, +/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"; + dir = 2 + }, +/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/backpack/duffelbag/med/surgery{ + pixel_y = 10; + pixel_x = -6 + }, +/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{ + can_move_docking_ports = 1; + name = "cthonian dock"; + port_direction = 4; + preferred_direction = 4; + dir = 1 + }, +/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{ + pixel_y = 0; + 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{ + dir = 2; + 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 = 8 + }, +/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..2890fa5ba815 100644 --- a/_maps/shuttles/pirate/pirate_libertatia.dmm +++ b/_maps/shuttles/pirate/pirate_libertatia.dmm @@ -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..5af3efbe556d 100644 --- a/_maps/shuttles/pirate/pirate_noderider.dmm +++ b/_maps/shuttles/pirate/pirate_noderider.dmm @@ -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 3e48d25a962c..35387ea53cd5 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) @@ -918,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" }, @@ -928,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) @@ -942,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" = ( @@ -977,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) @@ -1022,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" }, @@ -1297,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) @@ -1391,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" @@ -1448,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" @@ -1546,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" }, @@ -1577,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) @@ -1936,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) @@ -2051,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" = ( @@ -2072,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" = ( @@ -2199,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" @@ -2233,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) @@ -2255,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" @@ -2820,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 }, @@ -2998,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" @@ -3216,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" }, @@ -3309,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) @@ -3358,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" }, @@ -4044,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 23c64f4681a6..fdd49c8d696a 100644 --- a/_maps/shuttles/roumain/srm_elder.dmm +++ b/_maps/shuttles/roumain/srm_elder.dmm @@ -1447,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" = ( @@ -2020,7 +2020,7 @@ }, /obj/item/storage/backpack/satchel/leather, /obj/item/storage/box/ammo/a44roum, -/obj/item/storage/pistolcase/montagne, +/obj/item/storage/guncase/pistol/montagne, /obj/item/clothing/accessory/waistcoat/roumain, /turf/open/floor/wood/mahogany, /area/ship/bridge) diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm index f08281a47103..9a3be7fe22c1 100644 --- a/_maps/shuttles/solgov/solgov_chronicle.dmm +++ b/_maps/shuttles/solgov/solgov_chronicle.dmm @@ -272,7 +272,7 @@ /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/storage/guncase/pistol/modelh, /obj/item/storage/box/ammo/ferroslug, /turf/open/floor/carpet/royalblue, /area/ship/crew/office) diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm index 1a38d735246b..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,7 +5933,7 @@ /obj/item/fish_feed, /obj/item/pen/fountain/solgov, /obj/item/clothing/neck/cloak/solgovcap, -/obj/item/storage/pistolcase/modelh, +/obj/item/storage/guncase/pistol/modelh, /obj/item/storage/box/ammo/ferroslug, /turf/open/floor/wood/maple, /area/ship/crew/dorm/dormtwo) @@ -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 e062f70d011d..4c749a5744fe 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -3581,7 +3581,7 @@ /obj/item/fish_feed, /obj/item/pen/fountain/solgov, /obj/item/clothing/neck/cloak/solgovcap, -/obj/item/storage/pistolcase/modelh, +/obj/item/storage/guncase/pistol/modelh, /obj/item/storage/box/ammo/ferroslug, /turf/open/floor/carpet/royalblue, /area/ship/crew) 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/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..0591010c5b10 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/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{ +/obj/structure/cable/yellow{ icon_state = "0-8" }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 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/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 + }, +/obj/structure/sign/poster/contraband/stechkin{ + pixel_x = 32 }, -/turf/open/floor/carpet/cyan, +/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/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,8 +2584,8 @@ /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{ @@ -2360,10 +2603,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 +2618,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 +2641,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 +2655,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 +2689,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 +2729,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 +2756,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 +2779,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 +2818,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 +2837,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 +2871,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 +2947,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 +3012,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 +3022,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 +3095,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 +3110,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 +3127,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 +3243,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 +3301,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 +3342,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 +3404,13 @@ fp UG UG UG -AJ +OZ KW yn sC rA KW -AJ +OZ UG UG UG @@ -3046,13 +3427,13 @@ ZC UG UG UG -gL +an fX bv Ap bv na -gL +an UG UG UG @@ -3069,13 +3450,13 @@ ZC UG UG fp -gL +an GK -eS +WJ oc eS RA -gL +an Ti UG UG @@ -3092,13 +3473,13 @@ ZC ZC ZC ZC -gL +an lS yX -oc +Ft Gr lX -gL +an UO UO UO @@ -3116,7 +3497,7 @@ Cy cK Eb AD -GI +Tf Td pQ rn @@ -3138,13 +3519,13 @@ ZC ZC ZC tI -gL +an xB uE uE oA lJ -gL +an UO UO UO @@ -3158,19 +3539,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 +3639,7 @@ sO YA xp gW -ke +qA rk eT qA @@ -3303,8 +3684,8 @@ hQ Pg YA zM -gW -ke +La +qA wp mx qA @@ -3349,7 +3730,7 @@ FH tT MW UV -gW +EL Zv Sy DX @@ -3372,7 +3753,7 @@ fW tF nI Lh -zy +tn AQ WX Rl @@ -3395,7 +3776,7 @@ vn bT MW UV -gW +EL Zv Ki tJ @@ -3409,14 +3790,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 +3805,10 @@ Ev Ev Ev Ev +Ev iA UG UG -UG "} (20,1,1) = {" UG @@ -3439,7 +3820,7 @@ Uz Hk HE TH -OZ +gL bQ ZJ Ev @@ -3448,7 +3829,7 @@ iC jh Gs Ev -iA +Ev UG UG "} @@ -3464,7 +3845,7 @@ Ln YV uU iQ -zy +tn Cp uc IL @@ -3485,13 +3866,13 @@ UX BU KZ Fe -OZ +gL TB us Ev OF yf -iW +XN nF iW PH @@ -3501,7 +3882,7 @@ UG (23,1,1) = {" UG UG -OZ +gL JQ WP zo @@ -3524,9 +3905,9 @@ UG (24,1,1) = {" UG UG -tn -OZ -OZ +AJ +gL +gL zo wr WB @@ -3538,7 +3919,7 @@ Ev Pp CF Ev -Hl +Ev CZ iA UG @@ -3549,14 +3930,14 @@ UG UG UG UG -tn +AJ zo Nz rS ba zo Tr -gW +Hl Ev vj Aj @@ -3597,7 +3978,7 @@ UG UG UG Nn -WJ +Nn Xd Ah ES @@ -3605,7 +3986,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 index 7d0278f8b906..711a9f2033ae 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -64,7 +64,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/item/ammo_box/a357/match, /obj/item/pen/edagger, -/obj/item/storage/pistolcase/a357, +/obj/item/storage/guncase/pistol/a357, /obj/item/storage/box/ammo/a357, /turf/open/floor/carpet/black, /area/ship/bridge) @@ -222,12 +222,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) @@ -1284,8 +1284,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 }, @@ -2504,7 +2504,7 @@ /obj/item/clothing/suit/ngr, /obj/item/clothing/head/hardhat/ngr/foreman, /obj/item/tank/jetpack/suit, -/obj/item/storage/pistolcase/ringneck, +/obj/item/storage/guncase/pistol/ringneck, /turf/open/floor/carpet/red, /area/ship/cargo/office) "QW" = ( diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 4b42a90bbb26..4b4f9f217cde 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" @@ -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"; @@ -3155,22 +3151,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 +3249,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 +3293,6 @@ icon_state = "0-8" }, /obj/docking_port/mobile{ - can_move_docking_ports = 1; dir = 8; launch_status = 0; preferred_direction = 4 @@ -3821,8 +3808,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 +3877,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 +4030,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 +4271,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 +4453,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 +5236,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 +5249,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 +5341,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" @@ -5444,7 +5424,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 +5440,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_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm index 3d26ff6512b5..875d5806131c 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" }, @@ -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" }, @@ -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 3a3438c8f2f8..f52d41d021c3 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" }, @@ -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 }, @@ -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,7 +7375,7 @@ keyslot = null }, /obj/item/storage/belt/sabre/solgov, -/obj/item/storage/pistolcase/modelh, +/obj/item/storage/guncase/pistol/modelh, /obj/item/storage/box/ammo/ferroslug, /turf/open/floor/mineral/plastitanium, /area/ship/bridge) @@ -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, 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/check_regex.yaml b/check_regex.yaml index 41174bd9aa22..aa48a3d5db53 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: [39, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - - exactly: [115, "text2path uses", "text2path"] + - exactly: [114, "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..8c22616db287 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" @@ -325,24 +325,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 +408,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/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/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index 6445aa34b079..545c2ffa587b 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) @@ -548,7 +549,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 @@ -689,24 +689,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" @@ -763,10 +749,6 @@ ///from base of atom/examine(): (/mob, list/examine_text) #define COMSIG_ATOM_EXAMINE "atom_examine" -/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation -/// you should only be using this if you want to block deletion -/// that's the only functional difference between it and COMSIG_QDELETING, outside setting QDELETING to detect -#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_QDELETING "parent_qdeleting" 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/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/flags.dm b/code/__DEFINES/flags.dm index 5adbee63d938..404cbcd77808 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..29805d3e4e3c 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,6 +69,7 @@ #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 @@ -157,10 +159,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 5b99546fed97..8a121f8eae6f 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -82,8 +82,9 @@ #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) #define NOT_DIGITIGRADE 0 #define FULL_DIGITIGRADE 1 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3c815ef1fc37..1b2e2e605c09 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -339,15 +339,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" @@ -461,3 +452,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 f5c382c15c29..68b9fad18163 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -136,10 +136,11 @@ #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 // Health/damage defines #define MAX_LIVING_HEALTH 100 @@ -242,8 +243,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 @@ -397,10 +398,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; diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm index 96e7ab6e0578..f6686232993d 100644 --- a/code/__DEFINES/radio.dm +++ b/code/__DEFINES/radio.dm @@ -22,7 +22,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" @@ -48,18 +47,11 @@ #define RADIO_TOKEN_PIRATE ":y" #define RADIO_CHANNEL_WIDEBAND "Wideband" -//WS End - -#define RADIO_CHANNEL_CTF_RED "Red Team" -#define RADIO_CHANNEL_CTF_BLUE "Blue Team" - #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_SOLGOV 1345 // SolGov comms frequency, dark blue WS ADDITION #define FREQ_INTEQ 1347 // Inteq comms frequency, light brown @@ -91,7 +83,7 @@ #define MAX_FREQ 1489 // ------------------------------------------------------ -#define FREQ_WIDEBAND 1501 // Subspace/shuttle comms frequency, dark blue WS ADDITION +#define FREQ_WIDEBAND 1501 // sector wide communication #define MAX_FREE_FREQ 1599 // ------------------------------------------------- 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/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/traits.dm b/code/__DEFINES/traits.dm index fad1dfd1eeda..ab152733dab5 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -302,6 +302,8 @@ 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 //quirk traits 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/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 ae5a1c1ce929..31ce8dceee49 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -482,28 +482,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 ee7638ea853d..9ff2cbe896ae 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 d9957c7db0f1..df6f39cd0bbe 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( diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index f9edbc500142..f45781b014ea 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -247,9 +247,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, @@ -265,7 +264,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..e656cb55dfdd 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 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/alert.dm b/code/_onclick/hud/alert.dm index 6800db70a8fa..7089cd0c5090 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 @@ -578,25 +578,24 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." /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 +606,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 +634,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 diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 1e59295205eb..6a9e50474bfa 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -60,6 +60,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 @@ -119,6 +121,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 de516c4d3000..fae8bf220a8d 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -355,6 +355,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 530948144838..0bddad90850c 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -248,13 +248,13 @@ icon_state = "backpack_close" /atom/movable/screen/close/Initialize(mapload, new_master) - . = ..() - master = new_master + . = ..() + master = new_master /atom/movable/screen/close/Click() - var/datum/component/storage/S = master - S.ui_hide(usr) - return TRUE + var/datum/component/storage/S = master + S.ui_hide(usr) + return TRUE /atom/movable/screen/drop name = "drop" @@ -717,3 +717,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/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/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 2ac0b06b74d6..ab325d49ebe7 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -150,10 +150,6 @@ SUBSYSTEM_DEF(blackbox) 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/overmap.dm b/code/controllers/subsystem/overmap.dm index 113bfefa7a52..b184d67c77a5 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 f56fd9e73ab9..e35564a309c9 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -490,7 +490,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/ticker.dm b/code/controllers/subsystem/ticker.dm index a635a3d6389e..9568e88fb8ea 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) 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 d2b499de92ed..0f6d733dc256 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -266,7 +266,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 @@ -338,7 +338,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 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/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm index 339767dceb2c..9623191d3fd8 100644 --- a/code/datums/brain_damage/mild.dm +++ b/code/datums/brain_damage/mild.dm @@ -264,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/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..1d1edcd44545 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 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/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/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 018321094283..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() 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..7035c143ae4f 100644 --- a/code/datums/components/fantasy/suffixes.dm +++ b/code/datums/components/fantasy/suffixes.dm @@ -138,7 +138,7 @@ /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 cca7612f520d..5aeb26481360 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..2ec75a2945ab 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)) + 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 100% rename from code/datums/components/twohanded.dm rename to code/datums/components/melee/twohanded.dm 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 9306f6aae899..26d98b99e80e 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -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/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/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/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..ccf91af252a9 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -358,7 +358,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/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/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..e6733b8d5612 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() @@ -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/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 8c1245125b61..db052b99ecf3 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/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..3f87e6879c1b 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,7 +133,7 @@ /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( @@ -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,30 +227,29 @@ ) 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 @@ -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,7 +317,7 @@ /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, @@ -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,27 +382,26 @@ /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/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/item/mine/proximity/spawner/manhack/live = 40, - /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/random/mine = 8, /obj/effect/spawner/minefield/manhack = 2 ) mob_spawn_list = list( //nor organics, more biased towards hivebots though @@ -423,19 +417,18 @@ /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 ) @@ -463,20 +456,19 @@ ) 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, 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/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..986013232bc9 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" + description = span_nicegreen("I'm feeling great!") /datum/mood_event/legion_bad mood_change = -20 - description = "That felt awful!\n" + description = span_warning("That felt awful!") diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index f5e51d1d59f4..aa98d3ba860f 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 I'm held together by flimsy string, and could fall apart at any moment!") 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..b18475a37a05 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -1,98 +1,111 @@ /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 @@ -102,85 +115,85 @@ 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 +204,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 +236,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/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 81b7aea8582c..30b231c385c2 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -31,3 +31,11 @@ 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/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..1afc8bb4cc6c 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,9 @@ 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) 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/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/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/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/atoms_movable.dm b/code/game/atoms_movable.dm index 30f4627aff86..f22c880b287e 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -1221,7 +1221,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..2ee368eaa891 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -94,8 +94,8 @@ GLOBAL_LIST_INIT(radiochannels, list( RADIO_CHANNEL_COMMON = FREQ_COMMON, RADIO_CHANNEL_COMMAND = FREQ_COMMAND, 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, @@ -103,16 +103,14 @@ GLOBAL_LIST_INIT(radiochannels, list( 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_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, @@ -120,8 +118,6 @@ GLOBAL_LIST_INIT(reverseradiochannels, list( "[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..6dceae3a38dd 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 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/game_mode.dm b/code/game/gamemodes/game_mode.dm index 391ad852664f..2e938dacfb5d 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] diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 7e9d90bb482f..93f3e5d98a15 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -50,7 +50,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_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/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/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 3a36603c5070..0e5507a5b7f3 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -123,3 +123,6 @@ . = ..() if(!user.canUseTopic(src, !issilicon(user)) || !is_operational) return + +/obj/machinery/computer/examine_more(mob/user) + ui_interact(user) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 2389b699e7b9..5e83c863acf4 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -73,7 +73,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 @@ -94,9 +94,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.") @@ -119,9 +119,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) @@ -636,7 +636,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..a3ec24abc8ac 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -44,6 +44,9 @@ 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. + /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/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 7e3febcc482c..1cb54e029214 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, 15 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/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/newscaster.dm b/code/game/machinery/newscaster.dm index c53b256b04de..55f16a8c1f7b 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -814,12 +814,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/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 1e4fde83ae56..3a072fc59d72 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -1007,12 +1007,59 @@ DEFINE_BITFIELD(turret_flags, list( /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 + 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 @@ -1279,7 +1326,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" 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/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/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm index f8fa1d1ef786..d2e3c0519fb0 100644 --- a/code/game/machinery/shuttle/shuttle_heater.dm +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -360,8 +360,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 ea6633370147..9f69bb5748c8 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -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 @@ -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/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..402ea5aa5c6b 100644 --- a/code/game/machinery/teambuilder.dm +++ b/code/game/machinery/teambuilder.dm @@ -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/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/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/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm index d5825181295c..19d163f131ee 100644 --- a/code/game/objects/effects/anomalies/anomalies_bluespace.dm +++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm @@ -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_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm index e48a1879f257..8a0a469ba52b 100644 --- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm +++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm @@ -19,8 +19,8 @@ var/turf/open/our_turf = get_turf(src) if(istype(our_turf)) hallucination_pulse(our_turf, 5) - pixel_x = pixel_x + clamp(rand(-5, 5), -16, 16) - pixel_y = pixel_y + clamp(rand(-5, 5), -16, 16) + 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) @@ -45,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/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/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..afbdc5248c4d 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -144,6 +144,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) @@ -171,6 +172,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/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/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 1163a5520631..000000000000 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ /dev/null @@ -1,1296 +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/anomaly/transfusion/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/anomaly/transfusion/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/storm, - /obj/effect/anomaly/pyro/storm, - /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.dm/ai_module.dm b/code/game/objects/effects/spawners/random.dm/ai_module.dm new file mode 100644 index 000000000000..7f5eed59e4a0 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/anomaly.dm b/code/game/objects/effects/spawners/random.dm/anomaly.dm new file mode 100644 index 000000000000..aa8fa472de2c --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/bedsheet.dm b/code/game/objects/effects/spawners/random.dm/bedsheet.dm new file mode 100644 index 000000000000..f8a53fffd2c9 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/boards.dm b/code/game/objects/effects/spawners/random.dm/boards.dm new file mode 100644 index 000000000000..0104d17326d7 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/bureaucracy.dm b/code/game/objects/effects/spawners/random.dm/bureaucracy.dm new file mode 100644 index 000000000000..b55c9dc7b364 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/clothing.dm b/code/game/objects/effects/spawners/random.dm/clothing.dm new file mode 100644 index 000000000000..e5137f9e5078 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/decoration.dm b/code/game/objects/effects/spawners/random.dm/decoration.dm new file mode 100644 index 000000000000..7af7af7fe85b --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/engineering.dm b/code/game/objects/effects/spawners/random.dm/engineering.dm new file mode 100644 index 000000000000..81f264039feb --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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/experimental = 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.dm/entertainment.dm b/code/game/objects/effects/spawners/random.dm/entertainment.dm new file mode 100644 index 000000000000..8e51ddf384c0 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/exotic.dm b/code/game/objects/effects/spawners/random.dm/exotic.dm new file mode 100644 index 000000000000..84e4a0616c78 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/food_or_drink.dm b/code/game/objects/effects/spawners/random.dm/food_or_drink.dm new file mode 100644 index 000000000000..300f94260ee1 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/maintenance.dm b/code/game/objects/effects/spawners/random.dm/maintenance.dm new file mode 100644 index 000000000000..53a61e0f877d --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/medical.dm b/code/game/objects/effects/spawners/random.dm/medical.dm new file mode 100644 index 000000000000..a0d5a6db53b9 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/random.dm b/code/game/objects/effects/spawners/random.dm/random.dm new file mode 100644 index 000000000000..aeeab4ab5a31 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/readme.md b/code/game/objects/effects/spawners/random.dm/readme.md new file mode 100644 index 000000000000..97db867f2de6 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/salvaging.dm b/code/game/objects/effects/spawners/random.dm/salvaging.dm new file mode 100644 index 000000000000..9a6f4571a35e --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/structure.dm b/code/game/objects/effects/spawners/random.dm/structure.dm new file mode 100644 index 000000000000..0264b3d76a9e --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/trash.dm b/code/game/objects/effects/spawners/random.dm/trash.dm new file mode 100644 index 000000000000..3c15e77106a3 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/vending.dm b/code/game/objects/effects/spawners/random.dm/vending.dm new file mode 100644 index 000000000000..595746e14e19 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/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.dm/waste_planet.dm b/code/game/objects/effects/spawners/random.dm/waste_planet.dm new file mode 100644 index 000000000000..22618dada63d --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/waste_planet.dm @@ -0,0 +1,101 @@ +/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, + /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/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/items.dm b/code/game/objects/items.dm index 3abbaa26fcca..46d2634bbe8d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -523,8 +523,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 @@ -1204,6 +1204,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 @@ -1295,23 +1307,3 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return discover_after #undef MAX_MATS_PER_BITE -/** - * Used to update the weight class of the item in a way that other atoms can react to the change. - * - * Arguments: - * * new_w_class - The new weight class of the item. - * - * Returns: - * * TRUE if weight class was successfully updated - * * FALSE otherwise - */ -/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 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..d3f442fa3ab6 --- /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 + + 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/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/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/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 27d03e6767ff..60be7eed5ead 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -570,7 +570,6 @@ var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge = "plant produce", /obj/machinery/smartfridge/food = "food", /obj/machinery/smartfridge/drinks = "drinks", - /obj/machinery/smartfridge/extract = "slimes", /obj/machinery/smartfridge/bloodbank = "blood", /obj/machinery/smartfridge/organ = "organs", /obj/machinery/smartfridge/chemistry = "chems", @@ -983,15 +982,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" @@ -1018,11 +1008,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" @@ -1296,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" 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/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index e259e56ccd0e..70871e2ddc77 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -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/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index a9f28d88caed..0606e999b1ce 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -259,13 +259,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 +275,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 +564,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/mines.dm b/code/game/objects/items/devices/mines.dm index 1772cbf497c3..4f2169350d79 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(!(triggerer in view(proximity_range, src))) 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 = 1 + var/range_light = 2 + 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/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 944fe7462583..8782d3d30280 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -177,6 +177,9 @@ 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) + /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 cc528f103fe2..1caf2861a448 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -254,7 +254,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 f4a552abc401..8ffd17bc663c 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 @@ -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' diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index d072fcc9c23a..6f480f0dca15 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 @@ -118,7 +143,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 @@ -132,7 +157,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() @@ -146,11 +171,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() @@ -170,10 +197,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) @@ -198,12 +226,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() @@ -215,14 +261,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) @@ -231,6 +278,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 @@ -256,33 +329,30 @@ var/ruined = 0 /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 diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index e7e78abb4abc..c58d4223ca3c 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -54,6 +54,10 @@ 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/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..a086cf85b055 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -84,35 +84,6 @@ 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)) - var/steps = rand(1,4) - for(var/i in 1 to steps) - step_away(src,loc) - ////////////////////////////////// //Custom payload clusterbusters ///////////////////////////////// @@ -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/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_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/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..7ae3728803c0 100644 --- a/code/game/objects/items/melee/fireaxe.dm +++ b/code/game/objects/items/melee/fireaxe.dm @@ -17,10 +17,10 @@ /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,4 @@ /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") diff --git a/code/game/objects/items/melee/knife.dm b/code/game/objects/items/melee/knife.dm index 15d389477745..70ada48ed452 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() @@ -105,7 +105,6 @@ force = 20 throwforce = 20 attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") - world_file = 'icons/obj/world/melee.dmi' /obj/item/melee/knife/survival name = "survival knife" @@ -116,7 +115,6 @@ force = 15 throwforce = 15 attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") - world_file = 'icons/obj/world/melee.dmi' /obj/item/melee/knife/bone name = "bone dagger" @@ -129,7 +127,6 @@ force = 15 throwforce = 15 custom_materials = null - world_file = 'icons/obj/world/melee.dmi' /obj/item/melee/knife/combat/cyborg name = "cyborg knife" @@ -168,6 +165,7 @@ flags_1 = CONDUCT_1 force = 3 w_class = WEIGHT_CLASS_SMALL + sharpness = IS_BLUNT throwforce = 5 throw_speed = 3 throw_range = 6 @@ -175,27 +173,19 @@ 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" 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..0b64e22ed67c 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 @@ -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/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index 3c8f3ead8709..03f3797c4c49 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -119,7 +119,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/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/shrapnel.dm b/code/game/objects/items/shrapnel.dm index 249ee7dc41ed..db676e60fc3c 100644 --- a/code/game/objects/items/shrapnel.dm +++ b/code/game/objects/items/shrapnel.dm @@ -35,7 +35,7 @@ name = "flying shrapnel shard" damage = 10 range = 10 - armour_penetration = -20 + armour_penetration = -5 dismemberment = 25 ricochets_max = 2 ricochet_chance = 40 @@ -49,7 +49,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 +115,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 = 4 + 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 = 3 + 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/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 10eb8c1e2cf8..bac0935782e7 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -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 08dd06b690d5..0930ec09cabe 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -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/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index dca6cb8a3861..ef44cb2e7e2a 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -128,6 +128,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),\ @@ -137,6 +138,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), \ diff --git a/code/game/objects/items/storage/ammo_can.dm b/code/game/objects/items/storage/ammo_can.dm index 7962621674ad..e619aced0692 100644 --- a/code/game/objects/items/storage/ammo_can.dm +++ b/code/game/objects/items/storage/ammo_can.dm @@ -8,6 +8,23 @@ 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)" 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 11987d36bf0c..b2170d7e3bac 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -259,6 +259,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." @@ -323,10 +332,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" @@ -479,16 +490,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 +597,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." @@ -777,6 +818,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 +828,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 +856,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 +866,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 +881,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 +891,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 +907,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 +929,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 29d2cd22dbbd..c5512e5fe47b 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -102,6 +102,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" @@ -171,7 +179,7 @@ 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/frontier @@ -743,6 +751,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." 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..57f6f70e32b7 --- /dev/null +++ b/code/game/objects/items/storage/filled_guncases.dm @@ -0,0 +1,180 @@ +//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/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 + +/* 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/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 + +/* 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 + +/* 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 + +/* VI */ + +/obj/item/storage/guncase/pistol/commander + gun_type = /obj/item/gun/ballistic/automatic/pistol/commander + mag_type = /obj/item/ammo_box/magazine/co9mm + +/* 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/iongun + gun_type = /obj/item/gun/energy/ionrifle + +/* Old NT */ +/obj/item/storage/guncase/wt550 + gun_type = /obj/item/gun/ballistic/automatic/smg/wt550 + mag_type = /obj/item/ammo_box/magazine/wt550m9 + +/* 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 + +/* 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/p16 + gun_type = /obj/item/gun/ballistic/automatic/assault/p16 + mag_type = /obj/item/ammo_box/magazine/p16 + + +/obj/item/storage/guncase/skm + gun_type = /obj/item/gun/ballistic/automatic/assault/skm + mag_type = /obj/item/ammo_box/magazine/skm_762_40 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/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 6a47c8544bb9..9b17eae3b197 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) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 3ef2d547931a..460a48e0ed96 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, 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/toys.dm b/code/game/objects/items/toys.dm index 3643a9b6f9cf..565f44b1c35d 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -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)) @@ -1417,7 +1417,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/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..0c62ea4432e4 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -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 77497b671617..9c2e0605de7e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -131,12 +131,12 @@ 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" 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..0bf1cfa64c4f 100644 --- a/code/game/objects/structures/crateshelf.dm +++ b/code/game/objects/structures/crateshelf.dm @@ -123,6 +123,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!")) 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/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/platforms.dm b/code/game/objects/structures/platforms.dm new file mode 100644 index 000000000000..ce43fe1f70ff --- /dev/null +++ b/code/game/objects/structures/platforms.dm @@ -0,0 +1,163 @@ +/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) + +/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/salvaging.dm b/code/game/objects/structures/salvaging.dm index 613e20c7a82b..d3f0a663d440 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, @@ -344,11 +343,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, @@ -472,239 +471,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/bepis = 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/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/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..c92b984dbb77 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -13,10 +13,8 @@ GLOBAL_LIST_INIT(freqtospan, list( "[FREQ_AI_PRIVATE]" = "aiprivradio", "[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 3970cc403d73..7b8d68b7b2f9 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -113,7 +113,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) @@ -167,7 +168,6 @@ ScrapeAway() /turf/closed/mineral/ex_act(severity, target) - ..() switch(severity) if(3) if (prob(75)) @@ -177,7 +177,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, @@ -197,7 +197,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) diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 44acbe06f6bf..92f6d3b64782 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -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/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..97abc4869db8 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() 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..d38a0ca6956a 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." @@ -225,6 +211,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/plating/beach.dm b/code/game/turfs/open/floor/plating/beach.dm index 88bb3bbcad1b..485a5cc58a8c 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 = OPENTURF_DEFAULT_ATMOS 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..79121704001c --- /dev/null +++ b/code/game/turfs/open/floor/plating/jungle.dm @@ -0,0 +1,57 @@ +/turf/open/floor/plating/dirt/jungle + slowdown = 0.5 + baseturfs = /turf/open/floor/plating/dirt/jungle + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + light_color = COLOR_JUNGLEPLANET_LIGHT + +/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 + +/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..f360ac611267 100644 --- a/code/game/turfs/open/floor/plating/planet.dm +++ b/code/game/turfs/open/floor/plating/planet.dm @@ -20,70 +20,11 @@ /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 +39,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..9bc21c8778c6 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,101 @@ /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" /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/plasteel/stairs/rockplanet - initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS name = "exterior stairs" + initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/engine/hull/rockplanet initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT + +//i hope whoever subtyped all the rockplanet tiles like this stubs their toe so hard. /turf/open/floor/plasteel/rockplanet - initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS name = "exterior floor" + initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/plasteel/patterned/rockplanet initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/plasteel/patterned/rockplanet/lit light_range = 2 light_power = 0.6 - light_color = COLOR_VERY_LIGHT_GRAY name = "exterior floor" /turf/open/floor/plasteel/patterned/brushed/rockplanet + name = "exterior floor" initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/plasteel/patterned/brushed/rockplanet/lit light_range = 2 light_power = 0.6 - light_color = COLOR_VERY_LIGHT_GRAY - name = "exterior floor" /turf/open/floor/plasteel/patterned/ridged/rockplanet + name = "exterior floor" initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/plasteel/patterned/ridged/rockplanet/lit light_range = 2 light_power = 0.6 - light_color = COLOR_VERY_LIGHT_GRAY - name = "exterior floor" /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_VERY_LIGHT_GRAY - name = "exterior plating" /turf/open/floor/wood/rockplanet initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/pod/rockplanet initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + light_color = COLOR_ROCKPLANET_LIGHT /turf/open/floor/engine/hull/reinforced/rockplanet initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS + 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..6de774313697 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,61 +190,79 @@ 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 diff --git a/code/game/turfs/open/floor/plating/whitesands.dm b/code/game/turfs/open/floor/plating/whitesands.dm index 6d7d0e3343f9..2607d6f174c0 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 = WHITESANDS_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,11 +31,9 @@ /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 @@ -42,11 +42,14 @@ 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." @@ -60,6 +63,7 @@ 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 = WHITESANDS_ATMOS + +/turf/open/floor/concrete/whitesands + initial_gas_mix = WHITESANDS_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 = WHITESANDS_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 = WHITESANDS_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 = WHITESANDS_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 = WHITESANDS_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/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/turf.dm b/code/game/turfs/turf.dm index e5cc9709559c..8a90ac9fe614 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -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/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/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:
    • [details]
    " dellog += "
  • " dellog += "" diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index abdecf91de60..170ade6117c1 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -204,7 +204,7 @@ // DEATH SQUADS /datum/admins/proc/makeDeathsquad() - return makeEmergencyresponseteam(/datum/ert/deathsquad) + return makeEmergencyresponseteam(/datum/ert/independent/deathsquad) // CENTCOM RESPONSE TEAM @@ -226,6 +226,7 @@ .["mainsettings"]["spawn_admin"]["value"] = newtemplate.spawn_admin ? "Yes" : "No" .["mainsettings"]["use_custom_shuttle"]["value"] = newtemplate.use_custom_shuttle ? "Yes" : "No" .["mainsettings"]["spawn_at_outpost"]["value"] = newtemplate.spawn_at_outpost ? "Yes" : "No" + .["mainsettings"]["outpost_access"]["value"] = newtemplate.outpost_access ? "Yes" : "No" /datum/admins/proc/equipAntagOnDummy(mob/living/carbon/human/dummy/mannequin, datum/antagonist/antag) @@ -280,7 +281,7 @@ if (ertemplate) ertemplate = new ertemplate else - ertemplate = new /datum/ert/centcom_official + ertemplate = new /datum/ert/independent var/list/settings = list( "preview_callback" = CALLBACK(src, PROC_REF(makeERTPreviewIcon)), @@ -297,6 +298,7 @@ "spawn_admin" = list("desc" = "Spawn yourself as briefing officer", "type" = "boolean", "value" = "[(ertemplate.spawn_admin ? "Yes" : "No")]"), "use_custom_shuttle" = list("desc" = "Use the ERT's custom shuttle (if it has one)", "type" = "boolean", "value" = "[(ertemplate.use_custom_shuttle ? "Yes" : "No")]"), "spawn_at_outpost" = list("desc" = "Spawn the ERT/Dock the ERT at the Outpost", "type" = "boolean", "value" = "[(ertemplate.spawn_at_outpost ? "Yes" : "No")]"), + "outpost_access" = list("desc" = "Give ERT members outpost access", "type" = "boolean", "value" = "[(ertemplate.outpost_access ? "Yes" : "No")]") ) ) @@ -318,7 +320,7 @@ ertemplate.teamsize = prefs["teamsize"]["value"] ertemplate.mission = prefs["mission"]["value"] ertemplate.polldesc = prefs["polldesc"]["value"] - ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" // these next 8 are effectively toggles + ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" // these next 9 are effectively toggles ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ertemplate.leader_experience = prefs["leader_experience"]["value"] == "Yes" ertemplate.random_names = prefs["random_names"]["value"] == "Yes" @@ -326,6 +328,7 @@ ertemplate.spawn_admin = prefs["spawn_admin"]["value"] == "Yes" ertemplate.use_custom_shuttle = prefs["use_custom_shuttle"]["value"] == "Yes" ertemplate.spawn_at_outpost = prefs["spawn_at_outpost"]["value"] == "Yes" + ertemplate.outpost_access = prefs["outpost_access"]["value"] == "Yes" var/list/spawnpoints = GLOB.emergencyresponseteamspawn var/index = 0 @@ -494,13 +497,16 @@ if(teamSpawned) // guestbook for(var/datum/mind/member in ert_team.members) - var/member_mob = member.current + var/mob/living/carbon/human/member_mob = member.current for(var/datum/mind/other_member in ert_team.members) // skip yourself if(other_member.name == member.name) continue var/mob/living/carbon/human/other_member_mob = other_member.current member.guestbook.add_guest(member_mob, other_member_mob, other_member_mob.real_name, other_member_mob.real_name, TRUE) + if(ertemplate.outpost_access && istype(member_mob.wear_id, /obj/item/card/id)) + var/obj/item/card/id/id = member_mob.wear_id + id.access += list(ACCESS_CENT_GENERAL) message_admins("[ertemplate.rename_team] has spawned with the mission: [ertemplate.mission]") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 853d33e1b61b..68a2f4675bdb 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -70,9 +70,9 @@ return switch(sender) if (RADIO_CHANNEL_SYNDICATE) - sender = input("From what branch?", "Syndicate") as null|anything in list("Syndicate High Command", "The Anti-Corporation Liberation Front", "The Gorlex Marauders", "Donk! Corporation", "Cybersun Virtual Solutions", "The Galactic Engineer's Concordat", "The Naturalienwissenschaftlicher Studentenverbindungs-Verband") + sender = input("From what faction?", "Syndicate") as null|anything in list("Liberation Front Leadership", "Gorlex Republic Military Command", "Cybersun Industries", "the Student-Union of Naturalistic Sciences") if (RADIO_CHANNEL_MINUTEMEN) - sender = input("From what division?", "Minutemen") as null|anything in list("CLIP Minutemen Headquarters", "The Galactic Optium Labor Divison", "The Biohazard Assesment and Removal Division") + sender = input("From what division?", "Minutemen") as null|anything in list("the Colonial League Minutemen", "the Galactic Optium Labor Divison", "the Biohazard Assesment and Removal Division") if (RADIO_CHANNEL_INTEQ) sender = "Inteq Risk Management" if ("Outpost") @@ -854,7 +854,7 @@ switch(ruin_force) if("Random") - //Can't use pickweight as it might be from "everything" + //Can't use pick_weight as it might be from "everything" ruin_target = select_from[pick(select_from)] else var/selected_ruin = tgui_input_list(usr, "Which ruin?", "Spawn Ruin", select_from, 60 SECONDS) diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm index 68d2b4c2ec64..60528592f4e0 100644 --- a/code/modules/admin/view_variables/debug_variables.dm +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -1,23 +1,24 @@ #define VV_HTML_ENCODE(thing) (sanitize ? html_encode(thing) : thing) /// Get displayed variable in VV variable list -/proc/debug_variable(name, value, level, datum/D, sanitize = TRUE) //if D is a list, name will be index, and value will be assoc value. +/proc/debug_variable(name, value, level, datum/owner, sanitize = TRUE) //if D is a list, name will be index, and value will be assoc value. var/header - if(D) - if(islist(D)) + if(owner) + if(islist(owner)) + var/list/owner_list = owner var/index = name if (value) - name = D[name] //name is really the index until this line + name = owner_list[name] //name is really the index until this line else - value = D[name] - header = "
  • ([VV_HREF_TARGET_1V(D, VV_HK_LIST_EDIT, "E", index)]) ([VV_HREF_TARGET_1V(D, VV_HK_LIST_CHANGE, "C", index)]) ([VV_HREF_TARGET_1V(D, VV_HK_LIST_REMOVE, "-", index)]) " + value = owner_list[name] + header = "
  • ([VV_HREF_TARGET_1V(owner, VV_HK_LIST_EDIT, "E", index)]) ([VV_HREF_TARGET_1V(owner, VV_HK_LIST_CHANGE, "C", index)]) ([VV_HREF_TARGET_1V(owner, VV_HK_LIST_REMOVE, "-", index)]) " else - header = "
  • ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_EDIT, "E", name)]) ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_CHANGE, "C", name)]) ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_MASSEDIT, "M", name)]) " + header = "
  • ([VV_HREF_TARGET_1V(owner, VV_HK_BASIC_EDIT, "E", name)]) ([VV_HREF_TARGET_1V(owner, VV_HK_BASIC_CHANGE, "C", name)]) ([VV_HREF_TARGET_1V(owner, VV_HK_BASIC_MASSEDIT, "M", name)]) " else header = "
  • " var/item var/name_part = VV_HTML_ENCODE(name) - if(level > 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..ef7dd4c6e214 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 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/runes.dm b/code/modules/antagonists/cult/runes.dm index 3382672071cc..7a967798f00e 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -824,7 +824,6 @@ structure_check() searches for nearby cultist structures required for the invoca 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++ 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/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/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/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/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/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..1162f1d3b6cf 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(!.) @@ -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/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 1ddab9c4bf9f..9ef9bedfb8c1 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -110,7 +110,6 @@ "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', @@ -128,7 +127,21 @@ "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-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 @@ -162,30 +175,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') @@ -196,6 +194,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( @@ -444,8 +443,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/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/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..0e9c7b2888f7 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,9 @@ 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) + /obj/machinery/airalarm/ui_data(mob/user) var/data = list( "locked" = locked, 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 26361b99cfc6..4fb7ceac4527 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 = "" @@ -138,6 +138,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() @@ -326,12 +327,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 @@ -339,8 +338,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 @@ -363,22 +360,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 @@ -405,7 +398,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 850d0e91ba09..bddf8561f588 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 ba6ef6ba7784..c159e19da9ec 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 @@ -271,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, @@ -459,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/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/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm index 434a80c6416d..04c15c7962a8 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm @@ -25,17 +25,6 @@ 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/storage/box/ammo/c22lr - - 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." @@ -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/storage/box/ammo/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 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm index 2d9f3af83c06..65a72290bf07 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 @@ -186,7 +186,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/tools.dm b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm index f361f4e758ff..fabde1d0dfcf 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm @@ -162,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..a94a815db8b0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -32,6 +32,16 @@ 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/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 +108,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 +139,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 +169,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 +223,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 +245,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 +364,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,15 +394,6 @@ 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" 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/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 82fd2c11d01a..ab03be49e574 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -171,7 +171,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 @@ -189,7 +189,7 @@ 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) @@ -225,7 +225,7 @@ // 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)) + if(landing_turf && charge_account.adjust_money(-pack.cost, CREDIT_LOG_CARGO)) var/name = "*None Provided*" var/rank = "*None Provided*" if(ishuman(usr)) @@ -277,7 +277,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 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 f5e4a9822ef3..446630efec31 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -42,7 +42,7 @@ 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, 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..2e176efdbafc 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -24,6 +24,9 @@ src.orderer_ckey = orderer_ckey src.reason = reason src.paying_account = paying_account + 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/ammo.dm b/code/modules/cargo/packs/ammo.dm index 841937e4299e..742d62363f2d 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -1,65 +1,170 @@ /datum/supply_pack/ammo - group = "Ammunition" + group = "Bulk Ammunition" crate_type = /obj/structure/closet/crate/secure/gear crate_name = "ammo crate" -/* - Pistol ammo -*/ +/* Misc */ -/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) +/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) + +/* .22lr */ + +/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 + +/* 9mm */ + +/datum/supply_pack/ammo/c9mm_ammo_box + name = "9mm Ammo Box Crate" + desc = "Contains a 48-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/c9mmap_ammo_box + name = "9mm AP Ammo Box Crate" + desc = "Contains a 48-round 9mm box loaded with armor piercing ammo." + contains = list(/obj/item/storage/box/ammo/c9mm/ap) + cost = 400 + +/datum/supply_pack/ammo/c9mmhp_ammo_box + name = "9mm HP Ammo Box Crate" + desc = "Contains a 48-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/c9mmrubber_ammo_box + name = "9mm Rubber Ammo Box Crate" + desc = "Contains a 48-round 9mm box loaded with less-than-lethal rubber rounds." + contains = list(/obj/item/storage/box/ammo/c9mm_rubber) + cost = 200 + +/* .38 */ + +/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/storage/box/ammo/c38, + /obj/item/storage/box/ammo/c38) + crate_name = "ammo crate" + +/* 10mm */ + +/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/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/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) +/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/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 +/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/c38_mag - name = ".38 Speedloader Crate" - desc = "Contains a .38 speedloader for revolvers, containing six rounds." - contains = list(/obj/item/ammo_box/c38) +/* .45 */ + +/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/m10mm_mag - name = "10mm ringneck Magazine Crate" - desc = "Contains a 10mm magazine for the ringneck pistol, containing eight rounds." - contains = list(/obj/item/ammo_box/magazine/m10mm_ringneck) +/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/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/c45hp_ammo_box + name = ".45 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/c45_hp) + cost = 500 -/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/storage/box/ammo/c556mm) - cost = 750 - faction = FACTION_SOLGOV +/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 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/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/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/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 a 60-round 4.6x30mm box for PDWs such as the WT-550." + contains = list(/obj/item/storage/box/ammo/c46x30mm) + cost = 250 + +/* 5.7x39 */ -/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 +/datum/supply_pack/ammo/c57x39mm_boxcrate + name = "5.7x39mm Ammo Box Crate" + desc = "Contains a 48-round 5.7x39mm box for PDWs such as the Sidewinder." + contains = list(/obj/item/storage/box/ammo/c57x39) + cost = 250 -/* - Shotgun ammo -*/ + +/* 12 Gauge */ /datum/supply_pack/ammo/buckshot name = "Buckshot Crate" @@ -71,19 +176,19 @@ 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 -) + contains = list(/obj/item/storage/box/ammo/a12g_slug) + /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/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/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/techshells name = "Unloaded Shotgun Technological Shells Crate" @@ -91,108 +196,21 @@ cost = 210 contains = list(/obj/item/storage/box/techshot) -/datum/supply_pack/ammo/rubbershot - name = "Rubbershot Crate" - desc = "Contains a box of 32 rubbershot shells for use in crowd control or training." - cost = 500 - contains = list(/obj/item/storage/box/ammo/a12g_rubbershot) - -/* - .38 ammo -*/ +/* .45-70 */ -/datum/supply_pack/ammo/winchester_ammo - name = ".38 Ammo Boxes Crate" - desc = "Contains two 50 round ammo boxes for refilling .38 weapons." - cost = 250 - 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" - -/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/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/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/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/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 +/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 = 500 -/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) +/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 = 1000 -/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 +/* 7.62 */ /datum/supply_pack/ammo/a762_ammo_box name = "7.62x40mm CLIP Ammo Box Crate" @@ -201,6 +219,8 @@ /obj/item/storage/box/ammo/a762_40) cost = 500 +/* 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." @@ -208,11 +228,7 @@ /obj/item/storage/box/ammo/a556_42) cost = 450 -/datum/supply_pack/ammo/a357_ammo_box - name = ".357 Ammo Box Crate" - 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 +/* 5.56 caseless */ /datum/supply_pack/ammo/c556mmHITP_ammo_box name = "5.56 Caseless Ammo Box Crate" @@ -220,137 +236,34 @@ contains = list(/obj/item/storage/box/ammo/c556mm) cost = 250 -/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/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/c9mm_ammo_box - name = "9mm Ammo Box Crate" - desc = "Contains a 48-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/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/c9mmap_ammo_box - name = "9mm AP Ammo Box Crate" - desc = "Contains a 48-round 9mm box loaded with armor piercing ammo." - contains = list(/obj/item/storage/box/ammo/c9mm/ap) - cost = 400 - -/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 - /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/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/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/c9mmhp_ammo_box - name = "9mm HP Ammo Box Crate" - desc = "Contains a 48-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/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/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/c45hp_ammo_box - name = ".45 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/c45_hp) - cost = 500 - /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/c9mmrubber_ammo_box - name = "9mm Rubber Ammo Box Crate" - desc = "Contains a 48-round 9mm box loaded with less-than-lethal rubber rounds." - contains = list(/obj/item/storage/box/ammo/c9mm_rubber) - cost = 200 - -/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/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 - /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/guncell - name = "Weapon Cell Crate" - desc = "Contains a weapon cell, compatible with laser guns." - contains = list(/obj/item/stock_parts/cell/gun) - cost = 500 +/* .299 */ -/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/c57x39mm_boxcrate - name = "5.7x39mm Ammo Box Crate" - desc = "Contains a 48-round 5.7x39mm box for PDWs such as the Sidewinder." - contains = list(/obj/item/storage/box/ammo/c57x39) - cost = 250 +/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 -/datum/supply_pack/ammo/c46x30mm_boxcrate - name = "4.6x30mm Ammo Box Crate" - desc = "Contains a 60-round 4.6x30mm box for PDWs such as the WT-550." - contains = list(/obj/item/storage/box/ammo/c46x30mm) - cost = 250 +/* 8x50 */ /datum/supply_pack/ammo/c8x50mm_boxcrate name = "8x50mm Ammo Box Crate" @@ -360,33 +273,35 @@ /datum/supply_pack/ammo/c8x50mm_boxhp_boxcrate name = "8x50mm Hollow Point Crate" - desc = "Contains a 30y-round 8x50mm ammo box loaded with hollow point ammo, great against unarmored targets." + desc = "Contains a 30-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 +/* .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/storage/box/ammo/a300) cost = 400 +/* .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 + +/* 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/storage/box/ammo/a65clip) cost = 400 -/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 = 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 = 750 +/* ferro pellets */ /datum/supply_pack/ammo/ferropelletboxcrate name = "Ferromagnetic Pellet Box Crate" @@ -394,38 +309,18 @@ 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/storage/box/ammo/ferroslug) cost = 250 +/* ferro lances */ + /datum/supply_pack/ammo/ferrolanceboxcrate name = "Ferromagnetic Lance Box Crate" 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 - 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/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/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 - -/datum/supply_pack/ammo/c22lr - name = ".22 LR Ammo Box Crate" - desc = "Contains a 60-round ammo box for refilling .22 LR weapons." - contains = list(/obj/item/storage/box/ammo/c22lr) - cost = 250 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/civilian.dm b/code/modules/cargo/packs/civilian.dm index 0b1d7303ca44..61be8f4bfdbc 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 */ @@ -90,7 +82,7 @@ /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 76ca68e02b72..b07d20baa65c 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) @@ -94,7 +94,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, @@ -113,7 +113,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) diff --git a/code/modules/cargo/packs/exploration.dm b/code/modules/cargo/packs/exploration.dm index 5f70f2b9c2a1..a350fd323146 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 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 364c53ec9eb5..ff0e7afc5ec4 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -45,14 +45,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 @@ -94,7 +94,7 @@ /datum/supply_pack/food/ingredients_randomized name = "Exotic Meat Crate" - desc = "The best cuts in the whole galaxy. Probably." + desc = "The best cuts in the whole sector. Probably." cost = 500 contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime, /obj/item/reagent_containers/food/snacks/meat/slab/killertomato, @@ -117,7 +117,7 @@ /datum/supply_pack/food/ingredients_randomized/meat name = "Standard Meat Crate" - desc = "Less interesting cuts of meat, but filling nonetheless." + desc = "Less interesting, yet filling cuts of meat." cost = 300 contains = list(/obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab/chicken, @@ -130,7 +130,7 @@ /datum/supply_pack/food/ingredients_randomized/vegetables name = "Vegetables Crate" - desc = "Grown in vats." + desc = "Grown in the finest hydroponic vats." cost = 250 contains = list(/obj/item/reagent_containers/food/snacks/grown/chili, /obj/item/reagent_containers/food/snacks/grown/corn, diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 4074f76194d3..b15d0029ed21 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -10,7 +10,7 @@ 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 @@ -18,57 +18,64 @@ 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 +/datum/supply_pack/gun/m17 + name = "M17 pistol Crate" + desc = "A cheap target shooting pistol manufactured by Serene Outdoors. Chambered in .22lr" + cost = 200 + 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) + contains = list(/obj/item/storage/guncase/pistol/commander) faction = 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) + contains = list(/obj/item/storage/guncase/pistol/ringneck) faction = FACTION_SYNDICATE /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) + contains = list(/obj/item/storage/guncase/pistol/candor) faction = FACTION_SRM /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) + contains = list(/obj/item/storage/guncase/pistol/firebrand) faction = 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) + contains = list(/obj/item/storage/guncase/pistol/detective) faction = 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) + contains = list(/obj/item/storage/guncase/pistol/shadow) faction = 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 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) /* Energy @@ -78,21 +85,21 @@ 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" /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" /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 @@ -100,7 +107,7 @@ 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 @@ -108,14 +115,14 @@ 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" /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" /* @@ -153,10 +160,31 @@ crate_name = "shotgun crate" faction = 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" + /* 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." @@ -198,14 +226,14 @@ /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." + 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 = 5000 contains = list(/obj/item/storage/guncase/boomslang) crate_name = "rifle crate" /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" + 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" @@ -235,10 +263,12 @@ 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" @@ -261,4 +291,4 @@ 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" diff --git a/code/modules/cargo/packs/machinery.dm b/code/modules/cargo/packs/machinery.dm index 6e5a12f30f5b..e5d78e863f17 100644 --- a/code/modules/cargo/packs/machinery.dm +++ b/code/modules/cargo/packs/machinery.dm @@ -168,18 +168,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..438d24f9243e --- /dev/null +++ b/code/modules/cargo/packs/magazines.dm @@ -0,0 +1,211 @@ +/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 + +/* 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 + +/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" + +/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" + +/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 + +/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 + +/* 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 + +/datum/supply_pack/magazine/himehabu_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 + +/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 + +/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 + +/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 + +/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 + +/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) + +/datum/supply_pack/magazine/hydra_mag + name = "SMR-80 Magazine Crate" + desc = "Contains a 5.56x42mm CLIP for the SMR-80 rifle, containing 20 rounds." + contains = list(/obj/item/ammo_box/magazine/m556_42_hydra/small) + cost = 1000 + +/datum/supply_pack/magazine/boomslang_mag + 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 + +/* CM Lancaster */ + +/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 + +/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 F4 platform rifles, containing ten rounds." + contains = list(/obj/item/ammo_box/magazine/f4_308) + cost = 1000 + +/* 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) + +/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) + +/datum/supply_pack/magazine/incin_wt550_mag + name = "WT-550 Auto Rifle Incendiary Magazine Crate" + desc = "Contains one magazine of incendiary ammunition for the WT-550 Auto Rifle. Nanotrasen has discontinued the Depleted Uranium magazines as of recently." + cost = 1000 + contains = list(/obj/item/ammo_box/magazine/wt550m9/inc) + +/* 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 = 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 = 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 + +/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 + +/* 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) + cost = 500 + +/* 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 + +/* 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..f9bacd40f5e3 100644 --- a/code/modules/cargo/packs/material.dm +++ b/code/modules/cargo/packs/material.dm @@ -41,7 +41,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 +53,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/medical.dm b/code/modules/cargo/packs/medical.dm index e0ca4f139258..eac1f9a00b31 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -52,6 +52,16 @@ 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, + ) + /datum/supply_pack/medical/iv_drip name = "IV Drip Crate" desc = "Contains a single IV drip for administering blood to patients." @@ -139,29 +149,6 @@ 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 1045f2730ea9..601d387cb222 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -77,18 +77,13 @@ /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/flamethrower name = "Flamethrower Crate" @@ -155,8 +150,33 @@ /datum/supply_pack/sec_supply/taser name = "Hybrid Taser Crate" - desc = "Two disabler-taser hybrid weapons." + desc = "Contains 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..274798648cab 100644 --- a/code/modules/cargo/packs/spacesuit_armor.dm +++ b/code/modules/cargo/packs/spacesuit_armor.dm @@ -24,7 +24,7 @@ /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" diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 36bfefc02796..0cd01966b245 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 @@ -42,7 +42,7 @@ /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 = 2000 contains = list(/obj/machinery/cell_charger) @@ -98,18 +98,16 @@ /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" diff --git a/code/modules/client/loadout/_loadout.dm b/code/modules/client/loadout/_loadout.dm index a0e5d6cab3c3..44c1cff4ffa5 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..f660d35f676a 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 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..666aa8176e03 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 @@ -185,41 +181,94 @@ 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 +277,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 7d5e410fe62e..6a3b8d82c21a 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 @@ -895,7 +895,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 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 a6bb80499588..8313beaa408c 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 @@ -514,3 +506,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 6371b5c14f12..43fb9c39179d 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' @@ -384,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 @@ -437,16 +445,21 @@ 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) @@ -460,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..bb0ed8999367 100644 --- a/code/modules/clothing/factions/frontiersmen.dm +++ b/code/modules/clothing/factions/frontiersmen.dm @@ -129,7 +129,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' @@ -230,24 +230,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 +255,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 d4ff3169880d..c37b02754a38 100644 --- a/code/modules/clothing/factions/gezena.dm +++ b/code/modules/clothing/factions/gezena.dm @@ -221,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 @@ -229,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" @@ -246,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." @@ -256,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..ae664ed2a7ea 100644 --- a/code/modules/clothing/factions/hardliners.dm +++ b/code/modules/clothing/factions/hardliners.dm @@ -215,3 +215,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..d8b0f33f8a22 100644 --- a/code/modules/clothing/factions/nanotrasen.dm +++ b/code/modules/clothing/factions/nanotrasen.dm @@ -389,3 +389,18 @@ 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" + resistance_flags = FIRE_PROOF | ACID_PROOF + supports_variations = KEPORI_VARIATION diff --git a/code/modules/clothing/factions/ngr.dm b/code/modules/clothing/factions/ngr.dm index 401f82795f68..553d6a8b1015 100644 --- a/code/modules/clothing/factions/ngr.dm +++ b/code/modules/clothing/factions/ngr.dm @@ -219,21 +219,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 +259,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/head/_head.dm b/code/modules/clothing/head/_head.dm index aa1114e6b182..e74c788faa99 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -12,6 +12,7 @@ greyscale_icon_state = "hat" greyscale_colors = list(list(16,26)) supports_variations = VOX_VARIATION + 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) @@ -65,9 +66,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..0e9e0143d6ac 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -549,7 +549,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..c5d7e6ec98f9 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -184,7 +184,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..1271717fc537 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]" 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..8882fbfa8cdf 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 /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..a6d97c6f0d80 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -66,17 +66,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/outfits/ert/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm index b685e0e4b8bb..ca623bbf38b2 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/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,17 +84,17 @@ 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) @@ -95,7 +106,10 @@ /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/gas/sechailer + 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/regular, /obj/item/ammo_box/magazine/m9mm_mauler = 2, /obj/item/gun/ballistic/automatic/pistol/mauler) - 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) +/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/bulletproof/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,7 +258,7 @@ 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 @@ -227,11 +270,11 @@ /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 + 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 @@ -240,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/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..4c336f3a1713 100644 --- a/code/modules/clothing/outfits/factions/independent.dm +++ b/code/modules/clothing/outfits/factions/independent.dm @@ -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 51e1cf1fb29f..647e83d2e7c9 100644 --- a/code/modules/clothing/outfits/factions/inteq.dm +++ b/code/modules/clothing/outfits/factions/inteq.dm @@ -38,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 @@ -89,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 @@ -140,7 +140,7 @@ 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 @@ -202,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..69cd8444b732 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 // 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/standard.dm b/code/modules/clothing/outfits/standard.dm index 0d6806929bbf..899cba3420e9 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" @@ -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 424e00712078..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) . = ..() diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 6c5431e7006d..0005b30ea149 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -287,6 +287,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 25788f4556ae..f806beca1e02 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -411,7 +411,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 @@ -917,7 +917,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" @@ -1199,7 +1199,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 supports_variations = DIGITIGRADE_VARIATION 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..67dc2201d60c 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -13,7 +13,7 @@ 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) + 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) armor = list("melee" = 30, "bullet" = 15, "laser" = 15, "energy" = 40, "bomb" = 20, "bio" = 100, "rad" = 30, "fire" = 75, "acid" = 75) //Green syndicate space suit diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 30d3c3c3c9ba..cd8a24e20ae0 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 @@ -24,9 +24,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/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/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/under/_under.dm b/code/modules/clothing/under/_under.dm index bc8cb512906b..8843009813f3 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,9 +35,7 @@ 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 diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 0d05c4e0cf7f..81e5da317553 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -103,7 +103,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 @@ -119,13 +119,11 @@ 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 +406,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 @@ -444,6 +441,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..abbf1ac842b3 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -11,7 +11,7 @@ /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() ..() @@ -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() ..() @@ -193,15 +193,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 +212,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/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/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/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/meteor_wave.dm b/code/modules/events/meteor_wave.dm index a8ddab5aa76a..d64e8113b7f8 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -22,7 +22,7 @@ /datum/round_event/meteor_wave/proc/determine_wave_type() if(!wave_name) - wave_name = pickweight(list( + wave_name = pick_weight(list( "normal" = 50, "threatening" = 40, "catastrophic" = 10)) diff --git a/code/modules/faction/faction_datum.dm b/code/modules/faction/faction_datum.dm index 450ee9688953..017c324f5011 100644 --- a/code/modules/faction/faction_datum.dm +++ b/code/modules/faction/faction_datum.dm @@ -1,62 +1,77 @@ /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 +/datum/faction/New() + if(!short_name) + short_name = name + /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/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 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 29ff8ead2f62..30b768e702b0 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -34,7 +34,7 @@ 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) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index ec10f7dfb0f2..90b180587638 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -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/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 2f73f7678e38..add217d64a49 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -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 = 25 + +/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. // diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index ef25e1a94626..6b39a7c7dab7 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -24,7 +24,7 @@ make_bakeable() /obj/item/reagent_containers/food/proc/make_bakeable() - return + return /obj/item/reagent_containers/food/proc/checkLiked(fraction, mob/M) if(last_check_time + 50 < world.time) 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 2be06fcf3317..9d6470f5aec4 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -15,37 +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) - . = ..() - // Let's stop losing our crewmates over dumb candy - /* 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" 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/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm index bad45ea0542a..5f4a2593179d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm @@ -193,12 +193,12 @@ return TRUE /obj/machinery/oven/proc/update_baking_audio() - if(!oven_loop) - return - if(appears_active()) - oven_loop.start() - else - oven_loop.stop() + if(!oven_loop) + return + if(appears_active()) + oven_loop.start() + else + oven_loop.stop() ///Updates the smoke state to something else, setting particles if relevant /obj/machinery/oven/proc/set_smoke_state(new_state) diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index bc17a9fd22af..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,60 +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() - . = ..() - var/obj/item/circuitboard/machine/B = new /obj/item/circuitboard/machine/processor/slime(null) - B.apply_default_parts(src) - -/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 6016def705b5..6d9945337f71 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -382,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/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 a5cf4d78499e..34325454bd79 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/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..6d56533e9953 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -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/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/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/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index 251cf46e7c5f..458fe2f8299b 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(src) + + /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]) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 4d5a07d4130f..1166a0db0db5 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -207,7 +207,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) diff --git a/code/modules/mining/equipment/angle_grinder.dm b/code/modules/mining/equipment/angle_grinder.dm index 290cf0d153d7..7110fd2c42f7 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" @@ -26,7 +28,7 @@ usesound = 'sound/weapons/anglegrinder.ogg' tool_behaviour = null // is set to TOOL_DECONSTRUCT once wielded toolspeed = 1 - wall_decon_damage = 200 + wall_decon_damage = 250 usecost = 5 pack = /obj/item/gear_pack/anglegrinder var/startsound = 'sound/weapons/chainsawhit.ogg' @@ -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) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 05e81421ac4f..d110fe901082 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -138,6 +138,7 @@ L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) 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) ..() 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/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 72a28ab62b68..82dff7fab670 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -869,7 +869,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 @@ -1099,93 +1099,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 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 16f6afa8da0c..fa497b44a323 100644 --- a/code/modules/mining/ore_veins.dm +++ b/code/modules/mining/ore_veins.dm @@ -72,7 +72,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/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 2dbbd9d4b65b..406c59ae0d04 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -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 e130f6e404ce..dd60c13ce2cd 100644 --- a/code/modules/mob/dead/new_player/ship_select.dm +++ b/code/modules/mob/dead/new_player/ship_select.dm @@ -100,7 +100,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/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/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..05973b27b3d6 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) + Paralyze(50) 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) + Paralyze(20) playsound(get_turf(src), 'sound/effects/splat.ogg', 50, TRUE) var/turf/T = get_turf(src) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 62174120a60f..0c95d2502a91 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -1,6 +1,6 @@ /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) + 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 +9,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 +399,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 +428,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 +458,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 +498,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 +522,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 +550,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 ac632743fb92..f2eab61396f4 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -39,25 +39,6 @@ key = "blink_r" message = "blinks rapidly." -/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/carbon/crack key = "crack" key_third_person = "cracks" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 27fa569de7cd..b5e026d4746a 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) + Paralyze(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 c26956991d33..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) 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 dd05c0de739b..3e02a1c1e386 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -347,17 +347,17 @@ if(istype(L) && L.bone_status == BONE_FLAG_BROKEN && held_items[1] && prob(30)) force_scream() if(!HAS_TRAIT(src, TRAIT_ANALGESIA)) - 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]]!") + 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]]!)")) + 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)) force_scream() if(!HAS_TRAIT(src, TRAIT_ANALGESIA)) - visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[1]]!") + 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]]!)")) + 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 07cb0ced0e45..a37e15fbb69d 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 @@ -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 @@ -1808,18 +1809,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(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 * 10)) + if(plasma > MINIMUM_MOLS_TO_HARM) + burndamage += max(sqrt(ammonia) - 1 + lowerthreshold, 0) eyedamage = TRUE irritant = TRUE if(tritium) @@ -1832,29 +1841,41 @@ 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 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 475bf6bc9726..d097542a3a20 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -32,7 +32,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 bbd67e54db4e..84b9f9c6f997 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,HAIR,FACEHAIR) 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 47e5eb7e5f68..2244c4990d00 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 cfbc682f24de..2eeba6ea96ea 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -17,10 +17,9 @@ brutemod = 1.25 //They're weak to punches attack_type = BURN //burn bish exotic_bloodtype = "E" - 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 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 b7ef836e7397..75cba4290c72 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 a196a12701a2..3b82fc69becf 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' @@ -61,6 +61,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. 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 6aa6e1bbda9b..090412ec9dfd 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' 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..10375f424e82 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") 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 9e19ed618682..b5199eaf4afe 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 a397a360c49a..86ba58cf8a97 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 aafde6fa1ef7..405d916df755 100644 --- a/code/modules/mob/living/carbon/human/species_types/vox.dm +++ b/code/modules/mob/living/carbon/human/species_types/vox.dm @@ -10,7 +10,7 @@ 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' @@ -31,6 +31,9 @@ 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 1400d2c641ca..1857baa3f1d8 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()) @@ -687,6 +691,9 @@ There are several things that need to be remembered: if((head_bodypart.bodytype & BODYTYPE_SNOUT) && (I.supports_variations & SNOUTED_VARIATION)) target_overlay = "[target_overlay]_snouted" + 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 04a870684ccf..a65a7af0cfe9 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 @@ -261,11 +261,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 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 1161de97bb83..cf5fd04f85c6 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" @@ -378,6 +388,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" @@ -477,20 +499,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" @@ -640,3 +704,85 @@ return 'sound/voice/silicon/poo2_robot.ogg' else if(iscarbon(H)) return 'sound/voice/human/fart4.ogg' + +/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 6046cfe82b63..39b52d6e0ce2 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 @@ -1812,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() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index f9bb15bb5941..9e2a0bd9aaca 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 @@ -976,7 +976,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 +1041,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/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/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/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index df2508c5f4a0..1445eab16fbe 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -40,7 +40,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" diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 1b8004cbd5b5..7779c09e8bf9 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 @@ -133,6 +133,13 @@ /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 @@ -169,6 +176,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 +269,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 33c8bbdb3ed2..396dc82202a9 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -33,7 +33,6 @@ 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" @@ -91,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 @@ -167,7 +165,6 @@ /mob/living/simple_animal/pet/cat/Proc name = "Proc" gender = MALE - gold_core_spawnable = NO_SPAWN unique_pet = TRUE 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..5d8da2491fa7 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 @@ -494,7 +491,6 @@ icon_living = "narsian" icon_dead = "narsian_dead" faction = list("neutral", "cult") - gold_core_spawnable = NO_SPAWN nofur = TRUE unique_pet = TRUE held_state = "narsian" @@ -613,7 +609,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/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..6dcff82cb7c4 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -23,7 +23,7 @@ projectiletype = /obj/projectile/hivebotbullet 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" @@ -69,7 +69,7 @@ /mob/living/simple_animal/hostile/hivebot/death(gibbed) do_sparks(3, TRUE, src) - new /obj/effect/spawner/lootdrop/waste/hivebot(loc) + new /obj/effect/spawner/random/waste/hivebot(loc) ..(TRUE) /mob/living/simple_animal/hostile/hivebot/range @@ -120,7 +120,6 @@ 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) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 70ce3f665bab..beb44db426de 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -33,7 +33,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 @@ -315,7 +315,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) @@ -698,3 +701,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 d8b4af5344ea..593c33642b5f 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm @@ -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 @@ -20,7 +19,7 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier, /obj/item/clothing/mask/gas/sechailer, /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 @@ -42,7 +41,7 @@ /obj/item/gun/ballistic/revolver/shadow, /obj/item/clothing/mask/gas/sechailer, /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 @@ -53,6 +52,41 @@ /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 + 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/gas/sechailer, + /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/gas/sechailer, + /obj/item/tank/internals/emergency_oxygen/engi) + /mob/living/simple_animal/hostile/human/frontier/ranged/mosin icon_state = "frontiersmanrangedrifle" icon_living = "frontiersmanrangedrifle" @@ -68,7 +102,7 @@ /obj/item/gun/ballistic/rifle/illestren, /obj/item/clothing/mask/gas/sechailer, /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 @@ -82,12 +116,11 @@ /mob/living/simple_animal/hostile/human/frontier/ranged/trooper 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/bulletproof/frontier /mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals icon_state = "frontiersmanrangedelite_mask" @@ -96,7 +129,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,6 +140,34 @@ /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 + 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 icon_state = "frontiersmanrangedak47" icon_living = "frontiersmanrangedak47" @@ -116,18 +177,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/bulletproof/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) @@ -143,6 +205,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/bulletproof/frontier /mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals icon_state = "frontiersmanrangedmosin_mask" @@ -151,7 +214,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 @@ -166,13 +229,12 @@ 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,11 +242,11 @@ 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) @@ -196,13 +258,12 @@ name = "Frontiersman Officer" 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" @@ -211,7 +272,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 ed356764271f..cb90ebc348a6 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm @@ -7,17 +7,17 @@ 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 move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT ..() - /* - if(prob(15)) - new /obj/item/mob_trophy/shiny(loc) - visible_message("You notice a glimmering nugget of shiny metal.") - */ + /mob/living/simple_animal/hostile/human/hermit/survivor name = "Hermit Wanderer" @@ -60,13 +60,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 @@ -79,7 +94,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, @@ -91,7 +106,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 @@ -99,7 +114,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, @@ -111,7 +126,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, @@ -127,7 +142,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, @@ -139,7 +154,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, @@ -149,11 +164,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, @@ -166,7 +181,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, @@ -176,7 +191,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, @@ -188,7 +203,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 ) @@ -197,17 +212,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, @@ -223,7 +237,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, @@ -231,7 +245,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, @@ -248,10 +262,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, @@ -260,7 +274,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, @@ -272,12 +286,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!")) . = ..() @@ -290,6 +323,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..8ef8d1ef510f 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm @@ -13,13 +13,13 @@ speak_chance = 0 stat_attack = HARD_CRIT loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) - 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 faction = list(FACTION_ANTAG_SYNDICATE) check_friendly_fire = TRUE dodging = TRUE rapid_melee = 2 + armor_base = /obj/item/clothing/suit/armor/vest ///////////////Melee//////////// @@ -27,12 +27,11 @@ 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 + armor_base = /obj/item/clothing/suit/space/hardsuit/syndi /mob/living/simple_animal/hostile/human/syndicate/space/Initialize() . = ..() @@ -43,8 +42,7 @@ 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/elite /mob/living/simple_animal/hostile/human/syndicate/melee //dude with a knife and no shields melee_damage_lower = 15 @@ -62,13 +60,11 @@ 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 + armor_base = /obj/item/clothing/suit/space/hardsuit/syndi /mob/living/simple_animal/hostile/human/syndicate/melee/space/Initialize() . = ..() @@ -79,9 +75,8 @@ icon_state = "syndicate_stormtrooper_knife" icon_living = "syndicate_stormtrooper_knife" name = "Ramzi Clique Stormtrooper" - maxHealth = 250 - health = 250 projectile_deflect_chance = 50 + armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/elite /mob/living/simple_animal/hostile/human/syndicate/melee/sword melee_damage_lower = 30 @@ -115,13 +110,12 @@ 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 + armor_base = /obj/item/clothing/suit/space/hardsuit/syndi /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/Initialize() . = ..() @@ -137,9 +131,8 @@ 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/elite ///////////////Guns//////////// @@ -163,12 +156,11 @@ 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 /mob/living/simple_animal/hostile/human/syndicate/ranged/space/Initialize() . = ..() @@ -179,8 +171,7 @@ 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/elite /mob/living/simple_animal/hostile/human/syndicate/ranged/smg rapid = 2 @@ -193,12 +184,11 @@ 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 /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/Initialize() . = ..() @@ -209,8 +199,7 @@ 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/elite /mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun rapid = 2 @@ -224,12 +213,11 @@ 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 /mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/Initialize() . = ..() @@ -240,8 +228,7 @@ 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/elite ///////////////Misc//////////// @@ -275,7 +262,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 +270,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 c06c78068ce9..bf5809265172 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 @@ -448,7 +448,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 b7a2f0912653..6a153adc54e0 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 37934c0367e5..120bf4825999 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 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 b03363e956f1..d3040bc7717c 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 @@ -229,7 +228,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/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index e4eb7122d391..fede2e8753ac 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, 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 bd9133ffce20..7e3e217ecebd 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 @@ -365,7 +365,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 @@ -463,7 +463,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, @@ -472,7 +472,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 86224e131747..86476b21b3f4 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, @@ -33,7 +33,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, @@ -42,7 +42,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, @@ -51,13 +51,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, @@ -69,7 +69,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, @@ -83,7 +83,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, @@ -91,7 +91,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, @@ -103,7 +103,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, @@ -121,7 +121,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, @@ -151,14 +151,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 @@ -167,13 +167,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, @@ -183,7 +183,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 ) @@ -191,7 +191,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 ) @@ -199,7 +199,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, @@ -207,7 +207,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 @@ -216,7 +216,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, @@ -236,7 +236,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 @@ -245,7 +245,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 ) @@ -276,7 +276,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, @@ -305,7 +305,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)) @@ -320,7 +320,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, @@ -365,7 +365,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, @@ -408,7 +408,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, @@ -456,7 +456,7 @@ suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg, /obj/item/gun/energy/e_gun/iot) 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, 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 6beb2f23b9e6..18be354c2652 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,16 +21,8 @@ mob_size = MOB_SIZE_LARGE var/icon_aggro = null var/trophy_drop_mod = 25 - var/datum/armor/armor //WS edit - Whitesands /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) @@ -45,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 3375cd0a7269..a40b9043ee67 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..b39793d9a414 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 @@ -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/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 55ea24c81d7d..e90d00a38a42 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 @@ -98,8 +98,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 +141,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 +181,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 +479,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) 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 a05c2e65688e..d1b28067a804 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)) @@ -537,9 +535,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 bd1227d94d7d..e957fc06174d 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 @@ -147,7 +147,7 @@ if(20) newletter += "[newletter][newletter]" else - // do nothing + EMPTY_BLOCK_GUARD . += "[newletter]" return sanitize(.) @@ -192,7 +192,7 @@ if(5) newletter = "glor" else - // do nothing + EMPTY_BLOCK_GUARD . += newletter return sanitize(.) diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm index 630ed6f6f3c7..2b36075d2225 100644 --- a/code/modules/mob_spawner/hivebot.dm +++ b/code/modules/mob_spawner/hivebot.dm @@ -42,7 +42,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_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/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm index f7a518d3568f..e0567b9954bd 100644 --- a/code/modules/modular_computers/computers/item/laptop.dm +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -112,7 +112,9 @@ display_overlays = screen_on update_appearance() - +/obj/item/modular_computer/laptop/examine_more(mob/user) + if(screen_on) + interact(user) // 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..27b0809760b7 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) + if(cpu?.enabled) + interact(user) + // 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/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/missions.dm b/code/modules/overmap/missions.dm index 0bc2c2f34722..47625b008ff3 100644 --- a/code/modules/overmap/missions.dm +++ b/code/modules/overmap/missions.dm @@ -39,6 +39,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 +64,13 @@ return ..() /datum/mission/proc/turn_in() - servant.ship_account.adjust_money(value, "mission") + 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() + SSblackbox.record_feedback("nested tally", "mission", 1, list(name, "abandoned")) qdel(src) /datum/mission/proc/can_complete() diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm index 1ca28df922aa..ad7d5007ca6d 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 @@ -192,7 +192,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 d798fd74778a..19604ce53375 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 @@ -55,7 +55,15 @@ /datum/overmap/event/meteor/Initialize(position, ...) . = ..() - token.icon_state = "meteor[rand(1, 4)]" + 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" token.color = "#a08444" token.light_color = "#a08444" token.update_appearance() @@ -133,7 +141,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 @@ -143,7 +151,16 @@ /datum/overmap/event/electric/Initialize(position, ...) . = ..() - token.icon_state = "electrical[rand(1, 4)]" + 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" + token.color = "#e8e85c" token.light_color = "#e8e85c" token.update_appearance() @@ -218,7 +235,7 @@ /datum/overmap/event/meteor/carp 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 @@ -230,7 +247,16 @@ /datum/overmap/event/meteor/carp/Initialize(position, ...) . = ..() - token.icon_state = "carp[rand(1, 4)]" + 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" + token.color = "#7b1ca8" token.light_color = "#7b1ca8" token.update_icon() @@ -238,7 +264,7 @@ /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 @@ -249,7 +275,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 @@ -263,7 +289,7 @@ /datum/overmap/event/meteor/dust 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 @@ -297,7 +323,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/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index efa4e36026c0..cdd86ae2b0b5 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/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 0bf0a3eb51d3..36d25e940917 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -31,7 +31,8 @@ /// 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, ) /// List of types which should be allowed to be faxed if hacked var/static/list/exotic_types = list( @@ -46,7 +47,6 @@ /obj/item/reagent_containers/food/snacks/pancakes, /obj/item/throwing_star, /obj/item/spacecash, - /obj/item/holochip, /obj/item/card, /obj/item/folder/biscuit ) @@ -65,6 +65,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 +559,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 +604,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 5237358e34b1..e8f092f77161 100644 --- a/code/modules/paperwork/folders_premade.dm +++ b/code/modules/paperwork/folders_premade.dm @@ -81,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


    " diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index fecf2b17dac6..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" @@ -176,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..3df3820b28f4 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -900,6 +900,9 @@ 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) + /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/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 index 57b6e9b27b57..1562909a4f25 100644 --- a/code/modules/projectiles/ammunition/_ammo_casing.dm +++ b/code/modules/projectiles/ammunition/_ammo_casing.dm @@ -29,6 +29,8 @@ /// 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 @@ -46,10 +48,23 @@ ///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 = 12 + var/stack_size = 15 /obj/item/ammo_casing/attackby(obj/item/attacking_item, mob/user, params) - if(istype(attacking_item, /obj/item/ammo_box) && user.is_holding(src)) + 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) @@ -90,6 +105,10 @@ 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) @@ -142,8 +161,9 @@ . = ..() if(projectile_type) BB = new projectile_type(src) - pixel_x = base_pixel_x + rand(-10, 10) - pixel_y = base_pixel_y + rand(-10, 10) + 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)) @@ -151,11 +171,8 @@ /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"]" 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/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 9e1f880ffe1b..3d378a4020eb 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -137,4 +137,4 @@ desc = "A .22 LR bullet casing." projectile_type = /obj/projectile/bullet/c22lr caliber = "22lr" - stack_size = 15 + stack_size = 25 diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 04545410300b..3ab6f7c0668d 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -44,25 +44,6 @@ icon_state = "rifle-brass" caliber = "5.56x42mm" projectile_type = /obj/projectile/bullet/a556_42 - stack_size = 5 - -// 5.45x39mm (SKM-24v) - -/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 - stack_size = 15 - -/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 stack_size = 15 // 7.62x40mm CLIP (SKM Rifles) @@ -91,7 +72,7 @@ icon_state = "caseless" caliber = ".299 caseless" projectile_type = /obj/projectile/bullet/c299 - stack_size = 5 + stack_size = 15 /obj/item/ammo_casing/a65clip name = "6.5x57mm CLIP bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 2bf041a0e661..1a2590a5b36e 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -27,7 +27,6 @@ name = "beanbag slug" desc = "A weak beanbag slug for riot control." icon_state = "beanbag" - caliber = "12ga beanbag" custom_materials = list(/datum/material/iron=250) projectile_type = /obj/projectile/bullet/slug/beanbag @@ -35,7 +34,6 @@ name = "rubber shot" desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." icon_state = "rubber" - caliber = "12ga rubber" projectile_type = /obj/projectile/bullet/pellet/rubbershot pellets = 8 variance = 25 @@ -45,7 +43,6 @@ name = "incendiary slug" desc = "An incendiary-coated shotgun slug." icon_state = "incendiary" - caliber = "12ga incendiary" projectile_type = /obj/projectile/bullet/incendiary/shotgun /obj/item/ammo_casing/shotgun/blank @@ -59,7 +56,6 @@ name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." icon_state = "improvised" - caliber = "improvised 12ga" projectile_type = /obj/projectile/bullet/pellet/improvised custom_materials = list(/datum/material/iron=250) pellets = 10 diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 5e0602da6db2..3824a0ae384a 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -17,6 +17,14 @@ projectile_type = /obj/projectile/bullet/c46x30mm 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" desc = "A 4.6x30mm armor-piercing bullet casing." diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index 674d1e4514d8..9411382ed0cd 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' diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 57fb71d17f32..9606536d9f66 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -36,8 +36,10 @@ ///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 @@ -73,6 +75,10 @@ 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) @@ -117,10 +123,10 @@ if(!can_load(user)) return - if(istype(attacking_obj, /obj/item/ammo_box/magazine/ammo_stack)) + 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) - if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 1 SECONDS, attacking_box, timed_action_flags = IGNORE_USER_LOC_CHANGE))) + 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) 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 index 8a28920efe6a..453a6bacb4d0 100644 --- 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 @@ -17,5 +17,6 @@ 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_pistol_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm index 68ea1a7faeb5..6edc29a7b17a 100644 --- 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 @@ -247,7 +247,7 @@ ammo_type = /obj/item/ammo_casing/c45/rubber /obj/item/storage/box/ammo/c45_rubber - name = "box of incendiary .45 ammo" + 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" @@ -269,6 +269,7 @@ /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" @@ -388,6 +389,7 @@ /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" @@ -489,8 +491,8 @@ /obj/item/storage/box/ammo/a44roum_hp name = "box of HP .44 roumain ammo" - desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage." - icon_state = "a44roum-rubber" + 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() ..() 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 index d22f62ec2165..efd6cd0716bd 100644 --- 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 @@ -68,15 +68,6 @@ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42 = 4) generate_items_inside(items_inside,src) -// 5.45x39mm (SKM-24v) - -/obj/item/ammo_box/magazine/ammo_stack/prefilled/a545_39 - ammo_type = /obj/item/ammo_casing/a545_39 - max_ammo = 10 - -/obj/item/ammo_box/magazine/ammo_stack/prefilled/a545_39/recycled - ammo_type = /obj/item/ammo_casing/a545_39/recycled - // 7.62x40mm CLIP (SKM Rifles) /obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40 @@ -121,7 +112,7 @@ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c299 ammo_type = /obj/item/ammo_casing/caseless/c299 - max_ammo = 5 + max_ammo = 15 /obj/item/storage/box/ammo/c299 name = "box of .299 Eoehoma caseless ammo" 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 index f67800330724..139abb6de851 100644 --- 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 @@ -48,11 +48,11 @@ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot /obj/item/storage/box/ammo/a12g_rubbershot - name = "box of 12ga beanbags" + 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_beanbag/PopulateContents() +/obj/item/storage/box/ammo/a12g_rubbershot/PopulateContents() ..() var/static/items_inside = list( /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/rubber = 4) diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 90d2c7e4546e..0cf2a39beef2 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -34,19 +34,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." diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index 3f4c17aa336a..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, 8-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 = 8 - -/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/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..1f5b2f2cb3db 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -56,7 +56,8 @@ //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 + var/allowed_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 +100,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 +107,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 +260,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 +286,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 +295,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 +321,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 +333,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 +378,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) @@ -963,7 +959,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 +987,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 +1005,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 +1056,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 +1116,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( /obj/item/gun/energy/plasmacutter, - /obj/item/melee/transforming/energy, + /obj/item/melee/energy, ))) ///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 877079684ed2..debfc647e667 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 @@ -36,18 +40,26 @@ ) ) -/obj/item/gun/ballistic/Initialize() +/obj/item/gun/ballistic/Initialize(mapload, spawn_empty) . = ..() - if (!spawnwithmagazine && !ispath(mag_type, /obj/item/ammo_box/magazine/internal)) + 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 +158,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)) @@ -208,7 +220,7 @@ 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)) var/obj/item/ammo_box/magazine/AM = A @@ -221,7 +233,7 @@ 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/magazine/ammo_stack)) + 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) @@ -274,30 +286,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 @@ -322,7 +339,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) @@ -340,7 +358,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..f06b83d42f77 100644 --- a/code/modules/projectiles/guns/ballistic/assault.dm +++ b/code/modules/projectiles/guns/ballistic/assault.dm @@ -43,7 +43,12 @@ 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, + /obj/item/ammo_box/magazine/skm_762_40/extended, + /obj/item/ammo_box/magazine/skm_762_40/drum, + ) spread = 1 wield_delay = 0.7 SECONDS @@ -51,7 +56,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" @@ -84,7 +89,10 @@ show_magazine_on_sprite = TRUE w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - 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 @@ -97,7 +105,7 @@ eject_empty_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' /obj/item/gun/ballistic/automatic/assault/p16/no_mag - spawnwithmagazine = FALSE + default_ammo_type = FALSE /obj/item/gun/ballistic/automatic/assault/cm82 name = "\improper CM-16" @@ -133,7 +141,10 @@ 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 +161,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") @@ -218,17 +232,10 @@ 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() - /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) . = ..() @@ -310,7 +317,10 @@ weapon_weight = WEAPON_MEDIUM w_class = WEIGHT_CLASS_BULKY internal_magazine = TRUE - mag_type = /obj/item/ammo_box/magazine/internal/vickland + 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 diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index e63dfffc15e8..33486d172948 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -21,21 +21,6 @@ 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.65 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 @@ -43,7 +28,10 @@ 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 + default_ammo_type = /obj/item/ammo_box/magazine/recharge + allowed_ammo_types = list( + /obj/item/ammo_box/magazine/recharge, + ) fire_delay = 0.2 SECONDS burst_size = 0 fire_sound = 'sound/weapons/laser.ogg' @@ -54,7 +42,10 @@ 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..ec7eaede5c90 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 @@ -33,7 +36,7 @@ /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' @@ -42,7 +45,16 @@ 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 + + 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. @@ -55,19 +67,30 @@ 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 - spawnwithmagazine = FALSE + 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." - mag_type = /obj/item/ammo_box/magazine/modelh + 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" /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 + 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' @@ -76,7 +99,10 @@ 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 + 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 @@ -85,6 +111,14 @@ manufacturer = MANUFACTURER_SOLARARMORIES fire_select_icon_state_prefix = "pellet_" + 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" @@ -93,7 +127,10 @@ /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 + 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' @@ -102,7 +139,10 @@ 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 + 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 @@ -111,6 +151,13 @@ empty_indicator = FALSE manufacturer = MANUFACTURER_SOLARARMORIES + 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 diff --git a/code/modules/projectiles/guns/ballistic/hmg.dm b/code/modules/projectiles/guns/ballistic/hmg.dm index 780b24dc80fb..0a1265034f85 100644 --- a/code/modules/projectiles/guns/ballistic/hmg.dm +++ b/code/modules/projectiles/guns/ballistic/hmg.dm @@ -139,7 +139,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 +181,12 @@ 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, + /obj/item/ammo_box/magazine/skm_762_40/extended, + /obj/item/ammo_box/magazine/skm_762_40/drum + ) fire_delay = 0.13 SECONDS @@ -198,17 +206,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..2baee53a158a 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() @@ -59,7 +68,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/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 4fcc4cf56b14..54ee4455973d 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -29,7 +29,10 @@ 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 + 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' @@ -41,13 +44,13 @@ eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' show_magazine_on_sprite = TRUE -EMPTY_GUN_HELPER(automatic/pistol/candor) +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" -EMPTY_GUN_HELPER(automatic/pistol/candor/factory) +NO_MAG_GUN_HELPER(automatic/pistol/candor/factory) /obj/item/gun/ballistic/automatic/pistol/candor/factory/update_overlays() . = ..() @@ -68,7 +71,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' @@ -98,43 +104,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." @@ -145,7 +114,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' @@ -208,7 +180,10 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi' weapon_weight = WEAPON_LIGHT - mag_type = /obj/item/ammo_box/magazine/pistol556mm + 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' @@ -232,7 +207,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? @@ -257,7 +235,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' @@ -292,15 +273,21 @@ 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 + 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) -/obj/item/gun/ballistic/derringer/no_mag - spawnwithmagazine = FALSE diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 648ad96640f2..752af51a57e5 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' @@ -460,12 +463,16 @@ 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' - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 + 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" @@ -532,14 +539,8 @@ EMPTY_GUN_HELPER(revolver/detective) 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" @@ -572,18 +573,21 @@ EMPTY_GUN_HELPER(revolver/detective) 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 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44/montagne + 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) -/obj/item/gun/ballistic/revolver/montagne/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(revolver/montagne) /obj/item/gun/ballistic/revolver/ashhand name = "HP Ashhand" @@ -595,7 +599,10 @@ EMPTY_GUN_HELPER(revolver/detective) icon_state = "ashhand" item_state = "ashhand" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev4570 + 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 @@ -621,7 +628,10 @@ EMPTY_GUN_HELPER(revolver/detective) 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 + 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 @@ -630,8 +640,7 @@ EMPTY_GUN_HELPER(revolver/detective) semi_auto = TRUE safety_wording = "safety" -/obj/item/gun/ballistic/revolver/firebrand/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(revolver/firebrand) /obj/item/gun/ballistic/revolver/shadow name = "\improper HP Shadow" @@ -644,7 +653,10 @@ EMPTY_GUN_HELPER(revolver/detective) icon_state = "shadow" item_state = "shadow" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44 + 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 @@ -667,10 +679,9 @@ EMPTY_GUN_HELPER(revolver/detective) . = ..() AddComponent(/datum/component/ammo_hud/revolver) -/obj/item/gun/ballistic/revolver/shadow/no_mag - spawnwithmagazine = FALSE - /obj/item/gun/ballistic/revolver/shadow/reskin_obj(mob/M) . = ..() if(current_skin) item_state = unique_reskin[current_skin] + +EMPTY_GUN_HELPER(revolver/shadow) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index a61413057606..9396db025d7e 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -5,7 +5,10 @@ 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 @@ -85,14 +88,17 @@ eject_empty_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg' internal_magazine = FALSE - mag_type = /obj/item/ammo_box/magazine/illestren_a850r + 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! - spawnwithmagazine = FALSE + default_ammo_type = FALSE /obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() @@ -127,7 +133,10 @@ /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 + 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' @@ -160,7 +169,10 @@ icon_state = "scout" item_state = "scout" - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/smile + 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' @@ -174,9 +186,6 @@ 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 +194,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..567862ca1791 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 @@ -66,7 +69,10 @@ gun_firemodes = list(FIREMODE_FULLAUTO) default_firemode = FIREMODE_FULLAUTO - mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal + 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 @@ -88,8 +94,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 +EMPTY_GUN_HELPER(shotgun/brimstone) + // HELLFIRE SHOTGUN // /obj/item/gun/ballistic/shotgun/hellfire @@ -102,7 +108,10 @@ icon_state = "hellfire" item_state = "hellfire" - mag_type = /obj/item/ammo_box/magazine/internal/shot/riot + 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' @@ -125,8 +134,8 @@ item_state = "dshotgun_sawn" // ditto mob_overlay_state = item_state -/obj/item/gun/ballistic/shotgun/hellfire/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(shotgun/hellfire) + // Automatic Shotguns// /obj/item/gun/ballistic/shotgun/automatic spread = 4 @@ -137,25 +146,6 @@ 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 - //Dual Feed Shotgun /obj/item/gun/ballistic/shotgun/automatic/dual_tube @@ -169,7 +159,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 +175,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,10 +204,13 @@ 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) +NO_MAG_GUN_HELPER(shotgun/automatic/bulldog/inteq) ///////////////////////////// @@ -244,7 +240,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) force = 10 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/shot/dual + 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", @@ -330,8 +329,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) item_state = "dshotgun_sawn" mob_overlay_state = item_state -/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(shotgun/doublebarrel) // sawn off beforehand /obj/item/gun/ballistic/shotgun/doublebarrel/presawn @@ -350,7 +348,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) recoil = 3 //or not recoil_unwielded = 5 item_state = "dshotgun_sawn" - mag_type = /obj/item/ammo_box/magazine/internal/shot/dual/lethal + 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, + ) /obj/item/gun/ballistic/shotgun/doublebarrel/roumain name = "HP antique double-barreled shotgun" @@ -372,8 +373,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 +383,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 +430,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" @@ -486,7 +443,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) 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,7 +489,10 @@ 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 + default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/hundred + allowed_ammo_types = list( + /obj/item/ammo_box/magazine/internal/shot/hundred, + ) //Lever-Action Rifles /obj/item/gun/ballistic/shotgun/flamingarrow @@ -545,7 +508,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) 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 + 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" @@ -561,8 +527,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) recoil = 0 recoil_unwielded = 2 -/obj/item/gun/ballistic/shotgun/flamingarrow/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(shotgun/flamingarrow) /obj/item/gun/ballistic/shotgun/flamingarrow/update_icon_state() . = ..() @@ -642,7 +607,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) 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 + 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) . = ..() @@ -663,9 +631,6 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) 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" @@ -674,7 +639,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) 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 + 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) . = ..() @@ -695,8 +663,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) recoil = 0 recoil_unwielded = 3 -/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(shotgun/flamingarrow/conflagration) //Elephant Gun /obj/item/gun/ballistic/shotgun/doublebarrel/twobore @@ -713,7 +680,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) item_state = "huntsman" unique_reskin = null attack_verb = list("bludgeoned", "smashed") - mag_type = /obj/item/ammo_box/magazine/internal/shot/twobore + 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 @@ -741,7 +711,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) unique_reskin = null inhand_x_dimension = 32 inhand_y_dimension = 32 - mag_type = /obj/item/ammo_box/magazine/internal/shot/beacon + 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 @@ -772,8 +745,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) recoil = 2 recoil_unwielded = 4 -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/no_mag - spawnwithmagazine = FALSE +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." diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 0c3a01c18b5e..7dbe9783fb49 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -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,7 +56,10 @@ 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 @@ -70,7 +76,11 @@ icon_state = "firestorm" item_state = "firestorm" - mag_type = /obj/item/ammo_box/magazine/c45_firestorm_mag + default_ammo_type = /obj/item/ammo_box/magazine/c45_firestorm_mag + allowed_ammo_types = list( + /obj/item/ammo_box/magazine/c45_firestorm_mag, + /obj/item/ammo_box/magazine/c45_firestorm_mag/pan + ) unique_mag_sprites_for_variants = TRUE burst_size = 1 actions_types = list() @@ -84,12 +94,7 @@ 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() + default_ammo_type = /obj/item/ammo_box/magazine/c45_firestorm_mag/pan /obj/item/gun/ballistic/automatic/smg/skm_carbine name = "\improper SKM-24v" @@ -110,7 +115,11 @@ 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, + /obj/item/ammo_box/magazine/skm_46_30/recycled, + ) recoil = 2 recoil_unwielded = 6 @@ -161,7 +170,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' @@ -190,14 +202,45 @@ ) 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, + /obj/item/ammo_box/magazine/smgm9mm/ap, + /obj/item/ammo_box/magazine/smgm9mm/inc, + /obj/item/ammo_box/magazine/smgm9mm/rubber, + + ) + + 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..52abb7dd32ee 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,10 @@ 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 + allowed_ammo_types = list( + /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 +67,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 +88,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 aaf37d4c9556..f4193723e8fd 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,6 +19,14 @@ 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 @@ -49,14 +58,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 +114,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,7 +125,7 @@ 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)) var/obj/item/stock_parts/cell/gun/C = A if (!cell) insert_cell(user, C) @@ -125,12 +136,6 @@ 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 if(user.transferItemToLoc(C, src)) cell = C to_chat(user, span_notice("You load the [C] into \the [src].")) @@ -163,7 +168,7 @@ update_appearance() /obj/item/gun/energy/screwdriver_act(mob/living/user, obj/item/I) - if(cell && !internal_cell) + if(cell && !internal_magazine) to_chat(user, span_notice("You begin unscrewing and pulling out the cell...")) if(I.use_tool(src, user, unscrewing_time, volume = 100)) to_chat(user, span_notice("You remove the power cell.")) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 90bfa9a8ead1..7d91d41d5f0b 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -14,7 +14,7 @@ manufacturer = MANUFACTURER_SHARPLITE_NEW /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,8 +22,10 @@ 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 @@ -34,7 +36,7 @@ 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 +45,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 @@ -69,7 +71,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) @@ -125,7 +127,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,7 +186,6 @@ item_state = "gun" ammo_x_offset = 2 charge_sections = 6 - mag_size = MAG_SIZE_SMALL wield_delay = 0.2 SECONDS wield_slowdown = 0.15 @@ -193,7 +194,10 @@ 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" @@ -249,3 +253,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..c17c1cb8a005 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 @@ -203,9 +203,11 @@ 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 @@ -245,8 +247,10 @@ 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 manufacturer = MANUFACTURER_EOEHOMA 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..e394aa2b7b4d 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 @@ -125,7 +127,7 @@ 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 + 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 cf7b06f75a38..8a25728ccdf5 100644 --- a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm @@ -10,7 +10,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 +24,17 @@ 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_unwielded = 3 + +/obj/item/gun/ballistic/automatic/pistol/cm23/no_mag + default_ammo_type = FALSE + +/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 8-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 +45,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 +55,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 +91,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,7 +146,11 @@ 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, + /obj/item/ammo_box/magazine/cm5_9mm/rubber, + ) bolt_type = BOLT_TYPE_CLIP weapon_weight = WEAPON_LIGHT fire_sound = 'sound/weapons/gun/smg/cm5.ogg' @@ -119,11 +180,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 +195,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 +262,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 +298,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() @@ -284,7 +356,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 @@ -329,7 +404,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 +448,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 +468,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 @@ -448,7 +527,11 @@ 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, + /obj/item/ammo_box/magazine/cm15_12g/incendiary + ) empty_indicator = FALSE unique_mag_sprites_for_variants = FALSE @@ -475,3 +558,6 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) wield_slowdown = 0.6 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..a0bbb7185621 100644 --- a/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm +++ b/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm @@ -16,7 +16,10 @@ wield_delay = 0.7 SECONDS wield_slowdown = 0.35 - 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, + ) 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 +46,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 +57,10 @@ 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, + ) ammo_type = list(/obj/item/ammo_casing/energy/kalix/pgf , /obj/item/ammo_casing/energy/disabler/hitscan) /obj/projectile/beam/hitscan/kalix/pgf @@ -86,7 +92,10 @@ 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, + ) ammo_type = list(/obj/item/ammo_casing/energy/kalix/pistol) @@ -98,7 +107,7 @@ 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" diff --git a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm index 224712438b90..bc40ac3f8c28 100644 --- a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm @@ -9,7 +9,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 +22,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 +63,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 @@ -70,6 +78,7 @@ wield_slowdown = 0.25 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' @@ -133,7 +142,10 @@ 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 @@ -155,6 +167,7 @@ manufacturer = MANUFACTURER_IMPORT wield_slowdown = 0.5 + 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 @@ -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,10 @@ 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/Initialize() . = ..() 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 2ed64cb70d82..bbb6888030a3 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 = 10 recoil_unwielded = 4 -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 = 8 recoil_unwielded = 5 -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)" @@ -192,7 +183,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 +200,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 +215,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 +235,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 +258,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 +281,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." @@ -308,7 +298,10 @@ EMPTY_GUN_HELPER(automatic/pistol/rattlesnake) w_class = WEIGHT_CLASS_TINY - mag_type = /obj/item/ammo_box/magazine/m22lr_himehabu + 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 +338,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)" @@ -371,7 +364,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 +381,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 +392,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 +405,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 +436,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 +493,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,7 +520,11 @@ 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, + /obj/item/ammo_box/magazine/boomslang/short, + ) w_class = WEIGHT_CLASS_BULKY fire_delay = 1 SECONDS @@ -547,12 +545,7 @@ EMPTY_GUN_HELPER(automatic/smg/sidewinder) 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 @@ -568,7 +561,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" @@ -580,11 +573,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 @@ -594,7 +587,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 @@ -602,9 +595,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." @@ -623,7 +613,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 @@ -644,7 +637,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 ###########// @@ -659,7 +652,13 @@ 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, + /obj/item/ammo_box/magazine/m556_42_hydra/extended, + /obj/item/ammo_box/magazine/m556_42_hydra/casket, + /obj/item/ammo_box/magazine/m556_42_hydra/small + ) 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) @@ -685,17 +684,8 @@ EMPTY_GUN_HELPER(automatic/marksman/taipan) spread_unwielded = 8 wield_slowdown = 0.4 - 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, @@ -711,7 +701,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() @@ -751,17 +741,8 @@ EMPTY_GUN_HELPER(automatic/assault/hydra) wield_slowdown = 0.85 //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, @@ -778,20 +759,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\"" @@ -807,16 +779,10 @@ EMPTY_GUN_HELPER(automatic/assault/hydra) spread_unwielded = 12 wield_slowdown = 0.8 //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) - -/obj/item/gun/ballistic/automatic/assault/hydra/dmr/Initialize() - . = ..() - magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/small(src) - chamber_round() - +NO_MAG_GUN_HELPER(automatic/assault/hydra/dmr) /obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl name = "SMR-80 \"Hydra\"" @@ -871,7 +837,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) . = ..() @@ -942,7 +908,16 @@ 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, + /obj/item/ammo_box/magazine/m12g_bulldog/drum, + /obj/item/ammo_box/magazine/m12g_bulldog/drum/stun, + /obj/item/ammo_box/magazine/m12g_bulldog/drum/slug, + /obj/item/ammo_box/magazine/m12g_bulldog/drum/dragon, + /obj/item/ammo_box/magazine/m12g_bulldog/drum/bioterror, + /obj/item/ammo_box/magazine/m12g_bulldog/drum/meteor, + ) fire_delay = 0.4 SECONDS // this NEEDS the old delay. fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg' show_magazine_on_sprite = TRUE @@ -970,13 +945,8 @@ EMPTY_GUN_HELPER(automatic/assault/hydra/dmr) wield_slowdown = 0.6 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, @@ -985,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)" @@ -1031,10 +1008,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." @@ -1046,7 +1019,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 @@ -1072,7 +1048,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 @@ -1080,7 +1056,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..ab997c044d01 --- /dev/null +++ b/code/modules/projectiles/guns/manufacturer/serene_sporting/ballistics.dm @@ -0,0 +1,268 @@ +#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 + + + 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 = 25 + recoil = 0 + recoil_unwielded = 2 + wield_slowdown = 0.5 + 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 + + 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 + + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_MEDIUM + + spread = 0 + spread_unwielded = 40 + recoil = 1 + recoil_unwielded = 3 + wield_slowdown = 0.5 + 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 = 0.4 + 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/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 2e2fc46c3752..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 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 2cccb02224ed..8e3dbf6d91b9 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -141,6 +141,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 diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index b95c3dd37ddb..50664b86966e 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 diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index 340aa692f5b2..1c8342616937 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -94,7 +94,7 @@ /obj/projectile/bullet/a357 name = ".357 bullet" - damage = 30 //shiptest nerf + damage = 30 // admin only really, for ocelot memes /obj/projectile/bullet/a357/match @@ -111,7 +111,7 @@ /obj/projectile/bullet/a357/hp name = ".357 hollow point bullet" damage = 45 - armour_penetration = -50 + armour_penetration = -20 ricochet_chance = 0 //mushroom on impact, no bounces // .45-70 Gov't (Hunting Revolver) diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 7955c2b41557..e61cd410919a 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -35,13 +35,6 @@ damage = 20 stamina = 80 -//5.45x39mm (SVG-76u) - -/obj/projectile/bullet/a545_39 - name = "5.45x39mm bullet" - damage = 25 - armour_penetration = 20 - //7.62x40mm CLIP (SKM Rifles) /obj/projectile/bullet/a762_40 diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index 5e838b61161c..e98d48db4ff2 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -15,6 +15,9 @@ name = "4.6x30mm bullet" damage = 20 +/obj/projectile/bullet/c46x30mm/recycled + damage = 17 + /obj/projectile/bullet/c46x30mm/ap name = "4.6x30mm armor-piercing bullet" damage = 15 diff --git a/code/modules/projectiles/projectile/energy/misc.dm b/code/modules/projectiles/projectile/energy/misc.dm index 11f948ddb415..c9e113455387 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 = 350 /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 = 700 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/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/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index d37048250e62..bb6bafc9e74c 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)) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 9e4b2120774e..82bda376fc3c 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 diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index d468431c9480..3cbc70c96f23 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -581,7 +581,7 @@ /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, 0) ..() . = 1 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11e3f0179a8a..878275a1460f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -523,18 +523,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 +599,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 +637,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 +687,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 +714,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 +1173,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 +1203,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 +1224,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 +1679,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) @@ -2555,3 +2668,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..14ded3b571f9 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -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/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 d9b6b782115e..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,14 +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 - required_reagents = list(/datum/reagent/toxin/slimejelly = 30, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 5) - 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/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/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/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index 6ba2b05996d2..d6ea010f1623 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -185,3 +185,35 @@ materials = list(/datum/material/biomass = 3) build_path = /obj/item/candle category = list("initial","Organic Materials") + +/datum/design/rngplant + name = "SYNTHESIS" + id = "rngplant" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass= 2000) + build_path = /obj/effect/spawner/random/food_or_drink/seed + category = list("initial","LIFESEED_2.0") + +/datum/design/genesis + name = "GENESIS" + id = "genesis" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass= 2500) + make_reagents = list(/datum/reagent/genesis = 25) + category = list("initial","LIFESEED_2.0") + +/datum/design/strangeseed + name = "{DATA_CORRUPT}" + id = "strangeseed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass= 5000) + build_path = /obj/item/seeds/random + category = list("initial","LIFESEED_2.0") + +/datum/design/seaweed_sheet + name = "Seaweed Sheet" + id = "seaweedsheet" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 60) + build_path = /obj/item/reagent_containers/food/snacks/grown/seaweed/sheet + category = list("initial","Food") diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 2ba8ef1e2d7a..baa48134abbd 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." diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 9a1dd82ae373..4be993b09c4a 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 @@ -362,15 +363,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/experimentor.dm b/code/modules/research/experimentor.dm index 12e79efb65c8..4008738a89f4 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 8b6acd39ae34..e0ba10ce4aff 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -123,29 +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 - if(!slime_already_researched[E.type]) - 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)) - slime_already_researched[E.type] = TRUE - 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 if(!plant_already_researched[E.type]) @@ -656,10 +633,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 4c2eaac01879..d707675f6129 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -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 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 2bca49c62913..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.force_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 7d19fb0f8cfd..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.force_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 8b2aa42f0487..000000000000 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ /dev/null @@ -1,301 +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) - user.visible_message("[src] does nothing sorry lol!") - ..() - -/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/sandplanet_ruin_code/cave_base.dm b/code/modules/ruins/sandplanet_ruin_code/cave_base.dm new file mode 100644 index 000000000000..9995ff25015e --- /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_ALL | TURRET_FLAG_SHOOT_HEADS | TURRET_FLAG_SHOOT_UNSHIELDED + +//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/shuttle.dm b/code/modules/shuttle/shuttle.dm index 5af554a60557..992e7262694a 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 @@ -272,7 +272,7 @@ /obj/docking_port/mobile name = "shuttle" - icon_state = "pinonclose" + icon_state = "mobile" var/area_type = SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 633aa8dc4f25..bca247fe9026 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -17,7 +17,7 @@ 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/shotgun/automatic/m11, /obj/item/gun/ballistic/automatic/assault/p16, /obj/item/gun/ballistic/revolver/mateba, /obj/item/gun/ballistic/rifle/illestren, @@ -25,7 +25,7 @@ GLOBAL_LIST_INIT(summoned_guns, list( /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/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 97196cf64ecc..740568eb3480 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)]" @@ -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. @@ -582,6 +588,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 @@ -658,12 +669,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 @@ -755,6 +766,8 @@ limb_gender, )*/ + stored_icon_state = limb.icon_state + return /obj/item/bodypart/deconstruct(disassembled = TRUE) @@ -776,7 +789,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 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/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 0c73c34bd0c7..2cf72dab1731 100644 --- a/code/modules/surgery/mechanical.dm +++ b/code/modules/surgery/mechanical.dm @@ -33,14 +33,14 @@ 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 /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 f6af39b201c0..e522449b7101 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -248,36 +248,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) @@ -287,15 +269,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) @@ -304,24 +286,138 @@ // 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) + // 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 + + // 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) + + // 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) + + // 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) + + handle_smell(breath, H) + +///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) . = 0 diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index 62ca9cd2fe8e..f097cbc59ff6 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -48,37 +48,49 @@ /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) - if(prob(pukeprob)) //iT hAndLeS mOrE ThaN PukInG - 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 + if(prob(pukeprob)) //iT hAndLeS mOrE ThaN PukInG + 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) + 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. + H.force_scream() + 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/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 6a5a344b177e..28bdfd7b1b8d 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 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 a8c06ec257a6..3195d86e7fb7 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -45,6 +45,8 @@ /// 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 @@ -67,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" @@ -83,7 +84,7 @@ #include "connect_loc.dm" #include "biome_lists.dm" #include "emoting.dm" -#include "food_edibility_check.dm" +#include "gun_sanity.dm" #include "keybinding_init.dm" #include "machine_disassembly.dm" #include "open_air.dm" diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm index 9aee2ca10624..d52fd993244a 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 @@ -145,14 +143,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 +158,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 +180,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 +199,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 +216,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 3dba4d7c8e03..31c5d432dfa0 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))) @@ -113,4 +111,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_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index a09395d42103..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_test("[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."); \ } \ } @@ -72,7 +72,6 @@ if (outfit.random != TRUE) TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") else - log_test("[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/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index b672fe681884..5d6eee7c698e 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) @@ -1516,15 +1516,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!" 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 0724b7233ef9..17249d8aae17 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) @@ -795,12 +796,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C flick(icon_deny,src) vend_ready = TRUE return - - var/datum/bank_account/payment_account = payment_account_ref.resolve() - if(payment_account) - payment_account.transfer_money(account, price_to_use) - else - account.adjust_money(-price_to_use, "vendor_purchase") + 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) @@ -811,9 +807,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 @@ -1032,7 +1032,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 413b0238ce5d..5e15b2a2497f 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -19,7 +19,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, @@ -89,8 +89,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 45dc055e1b21..61139749b4dd 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -74,8 +74,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 = 60 + extra_price = 150 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..24979567a7c8 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 = 50 + extra_price = 150 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 0c16b36902e2..c462422830bf 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -51,14 +51,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, @@ -87,6 +90,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..1aa2a78e29f2 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 = 25 + extra_price = 40 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 a3fa70ce6209..f65f2b2e5b65 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -23,25 +23,14 @@ /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 = 20 + extra_price = 50 /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/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 007b66c193c1..8ffd760c9533 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -105,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..7d5e13a5e5c0 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -16,7 +16,7 @@ /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 @@ -26,17 +26,6 @@ /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 898844a31c09..3ee07932fddd 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -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 2bef026cebff..ac4286799eb6 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/html/changelogs/AutoChangeLog-pr-3361.yml b/html/changelogs/AutoChangeLog-pr-3361.yml deleted file mode 100644 index 94fa273582c6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3361.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: ghosts cannot duplicate themselves across multiple z levels.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3441.yml b/html/changelogs/AutoChangeLog-pr-3441.yml deleted file mode 100644 index 0299fb36df34..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3441.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {balance: rebalanced the probability of a grenade going off in one's hands} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3446.yml b/html/changelogs/AutoChangeLog-pr-3446.yml deleted file mode 100644 index 65e0eb3677b5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3446.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: firebudgy -changes: - - {bugfix: 'Mudskipper windows are correctly reinforced, like other ships by the - same manufacturer.'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3478.yml b/html/changelogs/AutoChangeLog-pr-3478.yml deleted file mode 100644 index b909ce469d5f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3478.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {rscdel: Holoparasites} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3491.yml b/html/changelogs/AutoChangeLog-pr-3491.yml deleted file mode 100644 index 6004c4799e6f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3491.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {rscadd: Holofans now have a small window before shutting down if they are deactivated - by lack of power} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3508.yml b/html/changelogs/AutoChangeLog-pr-3508.yml deleted file mode 100644 index 84fc1ea2deca..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3508.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Apogee-dev -changes: - - {balance: Valor and Vaquero have combat hardsuits for their enforcers now} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3523.yml b/html/changelogs/AutoChangeLog-pr-3523.yml deleted file mode 100644 index 15efc1037556..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3523.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {rscadd: The Frontiersmen have duct taped some turrets of their own together} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3532.yml b/html/changelogs/AutoChangeLog-pr-3532.yml deleted file mode 100644 index bf3de808dd72..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3532.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {balance: Syndicate smokes are now laced with stimulants instead of omnizine.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3539.yml b/html/changelogs/AutoChangeLog-pr-3539.yml deleted file mode 100644 index 4f995cda3c61..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3539.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Sadhorizon -changes: - - {rscdel: Removed Karl Marx from the game.} - - {rscdel: Removed all the job statues.} - - {rscdel: 'Cardborg suit, human, gondola and monkey skinsuits are no longer craftable.'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3541.yml b/html/changelogs/AutoChangeLog-pr-3541.yml deleted file mode 100644 index 4bc25ce2336d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3541.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Sadhorizon -changes: - - {bugfix: Pubby ruin can no longer randomly have acid in airlocks.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3543.yml b/html/changelogs/AutoChangeLog-pr-3543.yml deleted file mode 100644 index 2a4d5afad200..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3543.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Gristlebee -changes: - - {bugfix: Fixes walls and an enemy spawn in the Wrecked Factory} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3546.yml b/html/changelogs/AutoChangeLog-pr-3546.yml deleted file mode 100644 index e04b2efd4af6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3546.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Anticept -changes: - - {bugfix: blood smart-fridge selectable on smartfridge boards now when screwdrivering - them.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3548.yml b/html/changelogs/AutoChangeLog-pr-3548.yml deleted file mode 100644 index ba0e3f8a1706..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3548.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {balance: increased amount of plasma in plasma internals cargo crate} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3551.yml b/html/changelogs/AutoChangeLog-pr-3551.yml deleted file mode 100644 index 232c81139fdb..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3551.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {bugfix: fixed fauna spawning after drill malfunctions} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3555.yml b/html/changelogs/AutoChangeLog-pr-3555.yml deleted file mode 100644 index 7fe288c72bed..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3555.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {rscadd: NGR turrets} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3556.yml b/html/changelogs/AutoChangeLog-pr-3556.yml deleted file mode 100644 index 80ef9859ead2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3556.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Sadhorizon -changes: - - {tweak: Syndicate soap is now in-line with NT soap.} - - {rscdel: Syndicate tools are no longer faster. They are just reskinned normal - tools now.} - - {rscdel: Syndicate toolbox lost it's damage buff.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3557.yml b/html/changelogs/AutoChangeLog-pr-3557.yml deleted file mode 100644 index 63c3a04a151c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3557.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: firebudgy -changes: - - {rscadd: Active smoking pipe sprites for Vox.} -delete-after: true 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/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index c8e9f015aef7..00628fe7d833 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -175,3 +175,288 @@ rye-rice: - rscadd: Various sprite improvemnts - bugfix: Boomslang no longer fits on the belt +2024-10-16: + Anticept: + - bugfix: blood smart-fridge selectable on smartfridge boards now when screwdrivering + them. + Apogee-dev: + - balance: Valor and Vaquero have combat hardsuits for their enforcers now + Bjarl: + - rscadd: NGR turrets + - rscadd: Flipped tables actually let you throw things over them now. + - rscadd: Holofans now have a small window before shutting down if they are deactivated + by lack of power + - balance: Syndicate smokes are now laced with stimulants instead of omnizine. + - rscdel: Holoparasites + - rscadd: The Frontiersmen have duct taped some turrets of their own together + FalloutFalcon: + - bugfix: ghosts cannot duplicate themselves across multiple z levels. + Gristlebee: + - bugfix: Fixes walls and an enemy spawn in the Wrecked Factory + Sadhorizon: + - bugfix: Pubby ruin can no longer randomly have acid in airlocks. + - tweak: Syndicate soap is now in-line with NT soap. + - rscdel: Syndicate tools are no longer faster. They are just reskinned normal tools + now. + - rscdel: Syndicate toolbox lost it's damage buff. + - rscdel: Removed Karl Marx from the game. + - rscdel: Removed all the job statues. + - rscdel: Cardborg suit, human, gondola and monkey skinsuits are no longer craftable. + firebudgy: + - bugfix: Mudskipper windows are correctly reinforced, like other ships by the same + manufacturer. + - rscadd: Active smoking pipe sprites for Vox. + zimon9: + - balance: increased amount of plasma in plasma internals cargo crate + - balance: rebalanced the probability of a grenade going off in one's hands + - bugfix: fixed fauna spawning after drill malfunctions +2024-10-17: + Bjarl: + - rscdel: South Bronx Paradise Bar + Gristlebee: + - rscadd: Ice Lodge Ruin Map and areas + - rscadd: Simple Mob Frontiersmen Flametrooper and Surgeon + - rscadd: shoot_point_blank option for simple mobs + - rscadd: dragon_fire_line supports igniting tiles + - rscadd: broken display case, gunpowder barrel, SRM corpse spawners, chemical jug + spawners + - rscdel: Cat Butcher + - bugfix: Frontiersmen simplemob pathing + - bugfix: Fence doors spawning open when they should be closed and vice versa + - code_imp: scattering can be disabled with auto_scatter var for bullets, grown + items and nutrient bottles + - bugfix: Shotgun calibers and shotguns being unable to load certain rounds + MemeSnorfer: + - imageadd: Resprites colored skirts, black tango, red evening gown, sailors dress, + sundress, white dress, and some suitskirts. + - rscadd: Six pinafore variants, white colored skirt, one shoulder dress, and iko-ikssoal + dress. + PositiveEntropy: + - imageadd: All colored jumpsuits have been resprited! + - rscdel: Rainbow and khaki jumpsuits (including the buster subtype) have been removed. + generalthrax: + - bugfix: Gezena has shoes again + - rscdel: Gezenan captain gloves no longer have partial insulation in parity with + other captain gloves. +2024-10-18: + DIB-DOG: + - rscdel: Removed extra turret that wasn't supposed to be on the ship + - bugfix: Moved armory flashbangs to a more secure location + Erikafox: + - rscdel: Wasteplanets no longer spawn welding fuel tanks. + SomeguyManperson: + - balance: being thrown over lava by tackling, jump boots, or with assistance now + fully clears the lava instead of burning you horribly and setting you on fire + generalthrax: + - bugfix: Fixed a typo in the Frontiersman softcap that made the sprite go invisible + meemofcourse: + - rscadd: Atlas-class Light Armored Crusier + rye-rice: + - rscadd: Resprites the commander and Commissioner +2024-10-19: + Apogee-dev: + - balance: Reduced Cobra-20 magazine size to 24 rounds + - bugfix: removed a typo from Scarborough cargo catalog entries + Erikafox: + - rscdel: Xenobiology (minus slimes) + - code_imp: pre-weld and pre-sealed airlock helpers for maps. + FalloutFalcon: + - rscadd: Autolathes can now print space heater boards. + - bugfix: examine on ammo casings now properly hint that you can write on them + Gristlebee: + - rscadd: Bullets can have a message written on them. + NithaIsTired: + - rscadd: Adds a ton of audible emotes and visible emotes like snapping your fingers + or twitching + - rscadd: You can boop people on the nose by clicking on their mouth with help intent + - rscadd: Sound variation with a few emotes like snapping and clapping + - rscadd: Laying down now plays a sound if you aren't on walk intent + Orchidthederg: + - bugfix: fallback sprite for dust storms was set to the carp sprite for some reason. + - imageadd: fancy new carp, meteor, and electrical storm + - imagedel: old carp, meteor, and electrical storm sprites + Spookywastaken: + - imageadd: Handrails have been resprited! + generalthrax: + - balance: E40 hybrid rifle ballistic mode now shoots faster +2024-10-20: + FalloutFalcon: + - balance: blind people can examine twice as fast + - code_imp: makes defines for the two primary atoms requirement lists +2024-10-21: + Apogee-dev: + - balance: Made Komodo aspawn +2024-10-22: + Imaginos, Erika: + - rscadd: The Pan Gezenan Federation has sent out shipments of boarding cutlasses + to the Frontier. Expect cool doohickeys on your friendly neighborhood PGF Vessel + - imageadd: 'Imaginos: PGF sord sprites' + - code_imp: sabres now take up less space in code +2024-10-23: + Erikafox: + - bugfix: Hallucination Anomalies will stay on their tile now. + - rscadd: You can now fax credit holochips + - bugfix: Analgesia can no longer be taken with self-aware + - bugfix: Few edge cases for analgesiacs getting pain + FalloutFalcon: + - bugfix: ammo + - refactor: refactored ammo types to not be snowflaked when handling spawning subtyped + guns + FeenieRU: + - code_imp: Changing qdel() and SSgarbage procs + - code_imp: rewrite /Destroy(force, silent) to /Destroy(force) + Sun-Soaked: + - rscadd: Directional Mines, implemented as Claymores. + - rscadd: Mines now have World Icons + - balance: explosions now only strip to space when a tile is already damaged + - bugfix: Prox mines explode from slightly further away & no longer activate through + walls. + - bugfix: Multiple mines can no longer be stacked on a tile + - code_imp: fire_casing() can now be called by non-mobs, allowing objects to shoot + casings. + - bugfix: cleans up mine wire datums on mine deletion + generalthrax: + - rscadd: Added Stamped Steel Machetes, 5 for 500 + meemofcourse: + - rscadd: A lot of ERTs and ERT remasters, including Fronties, Ramzi, PGF, NGR, + Indies and whatnot + - rscdel: Most Nanotrasen ERTs have been shelved pending assets + - rscdel: Smokebomb randomized descriptions +2024-10-24: + Erika Fox: + - rscadd: An abandoned tradepost has been located in the system. Investigate nearby + waste worlds for more information. + - rscadd: preburnt flares + Erikafox: + - rscadd: Kasagi-Fischer has begun a new production run of the venerable Raleigh-class + Corvette. See your purchaser's manual for more information! + - balance: Fireaxes on the black market now cost less. Thanks Kiirv-Waha! + FalloutFalcon: + - code_imp: better pr labeling for ships and ruins +2024-10-25: + Erikafox: + - bugfix: Newscasters can now read IDs through a wallet. + FalloutFalcon: + - refactor: refactored some mapping stuff including random spawners! + Gristlebee: + - rscadd: Vote sound changed to announce_dig.ogg + MemeSnorfer and Moffball: + - imageadd: Snouted balaclava sprites for both Sarathi and Elzuose + - code_imp: Elzuose snout type, for use with mask sprites + Sadhorizon: + - tweak: Medical stacks now work on corpses. + SomeguyManperson: + - balance: simple humans now have as much health as normal humans! This makes them + weaker! + - balance: simple humans now also benefit from their armor as much as normal humans! + This makes them stronger! + generalthrax: + - bugfix: Design disks work again + thgvr: + - balance: Removed Kepori damage modifiers. + - balance: Decreased Kepori move speed modifier. (They are still a bit faster than + average) + zimon9: + - bugfix: fixed the orbit menu search function so that names work again + - rscadd: Added plastitanium shards + - bugfix: fixed some artifacts in the plasma glass shard sprites +2024-10-26: + FalloutFalcon: + - rscadd: Faction statistics are now logged to the blackbox + - rscdel: Removes some cruft, red and blue team radios, out date/useless database + logging station trash cleaned + MarkSuckerberg: + - server: qdel logs work again +2024-10-27: + Anticept: + - refactor: Refactored moods so explicit newlines are not required in descriptions. + None of this changes player facing stuff. + 'Apogeesys, Ryerice, Erikafox ': + - rscadd: Serene Outdoors has begun a new production run of its classics - the Model + 17, Model 12, Model 15, and Model 11 + - rscdel: old combat shotgun + Erika - porting from /tg/ mostly.: + - rscadd: Tape Recorders now have a radial menu when used + - rscadd: Tape recorders now make noises + - rscadd: Tape recorders now have wires (can be remotely used) + Erikafox: + - balance: Hammer RPGs should no longer annihilate you completely. Just partially. + - bugfix: Weapons with no bolt can no longer be racked. Use your hand on them instead + - rscadd: Transceivers have been picking up an intermittent radio signal coming + from a nearby sand world. People with too much spare time - please check it + out. + - rscadd: Satchel Charges. Exceedingly rare and decently explosive. + - balance: Chances are, if there was a plasma cutter on a ship, it's an angle grinder + now. Rejoice. Cry in terror. Whatever honestly. + - balance: Angle grinders can now grind blast doors. reinforced windows are now + less bad to grind down. + - balance: angle grinder packs now slow you down less + - balance: angle grinders now sound less Screechy + - balance: angle grinders can now be safely used with a Bowman headset. + Sadhorizon: + - rscadd: All the inteq ships (and the beluga inteq office) now start with a rail + light for every gun. + - tweak: Rail light crate now costs 100 credits. + - rscadd: Added the Scarab-class Heavy Mining Ship + Sun-Soaked: + - bugfix: cleans up 3 potentially sticky refs + - bugfix: limb items no longer runtime when moved or dropped + - bugfix: vox blood & body damage overlays. + - imageadd: something something fixed vox overlays countless hours of work + - code_imp: replaced a horrifying var reference in clothing with a weakref + - code_imp: the thresholds for limb damage sprites have been reduced + - refactor: reworks clothing blood overlay into a central proc called by clothing + generalthrax: + - balance: Reloading speed from stacks doubled + - balance: Increase ammo can to bulky and lets it hold 4 normal-sized ammoboxes, + can only hold ammo and explosives. + - balance: Adjusted price of .299 Eoehoma slightly, adds a second box to the cargo + order since its 60 instead of 120 + - bugfix: Fixes a bunch of bullet stacks to have correct numbers + - bugfix: Larger handfuls (.22lr) + - bugfix: Mapped in ammo cans now hold their boxes + - bugfix: 12g beanbag now has beanbag instead of rubber + beanbag + - bugfix: Ammo box icons and descriptions + - rscdel: Removed .22lr from the blackmarket. Its in cargo already. + zimon9: + - rscadd: Added better names for some material shards + - rscadd: Added ability to see screens using the examine_more function +2024-10-28: + Sadhorizon: + - rscadd: A new sand ruin - the E-11 Manufacturing Plant - and associated code. + - rscadd: A purple hardhat. +2024-10-29: + FalloutFalcon: + - rscdel: Removed some ancient away mission cruft + - code_imp: flaky tests can now comment under its own prs. + FalloutFalcon, Melbert: + - refactor: transforming weapons are easier to add + MarkSuckerberg: + - server: Logs a few more stats for use in the Statbus at https://shiptest.net/stats + thgvr: + - imageadd: Updated world icons for knives +2024-10-30: + Erikafox: + - rscadd: Some planets now have new lighting values. Please report back on if they + are "Pleasant" + rye-rice: + - rscadd: You can now detect certain gases from smell, most notably plasma + - rscadd: Adds 6 new gases, all unused at the moment + - rscdel: 3 gases, Pluox, Nitryl, and Stimming + - balance: The noble gas suppresssion threshold has been increased from 10 mols + to 75 mols + - balance: Various gases have had their enthalpy (energy released during fires) + adjusted, changing the behavior of gas fires slightly. + - balance: Plasma is a much more potent skin/eye irritant + - balance: Hydrogen gas is no longer visible + - bugfix: Freon's stage one breath effects should work now, before they were tied + to nitryl's amount + rye-rice, Jedi Toothpaste: + - rscadd: adds Beagle Mug + - rscadd: adds Beagle Mug to Atlas Class +2024-10-31: + Gristlebee: + - rscadd: Indie Viper guncase comes with 2 speedloaders. + SomeguyManperson: + - code_imp: empty energy weapons now get emptied slightly differently, no player-facing + changes diff --git a/html/changelogs/archive/2024-11.yml b/html/changelogs/archive/2024-11.yml new file mode 100644 index 000000000000..ae14b83eccc3 --- /dev/null +++ b/html/changelogs/archive/2024-11.yml @@ -0,0 +1,91 @@ +2024-11-01: + Erikafox: + - rscadd: A new PGFN vessel has entered the frontier - the Elated Bolide class makes + a bright entry into the local system. + SomeguyManperson: + - bugfix: strippers and speedloaders for rifles now work again +2024-11-02: + Apogee-dev: + - balance: Balaclavas and half masks are now just breath masks, not gas masks + - balance: Normal balaclavas can use internals too + - bugfix: Balaclavas don't have a joke description anymore + Erikafox: + - code_imp: cauterization now checks for pain feeling traits instead of morphine + - balance: morphine pills no longer addict and overdose you + - balance: frontier import guns now misfire more often + - rscadd: guns can now misfire into your head. + - rscadd: You can now recycle gun cases and ammo boxes. + - code_imp: Cargo ammo has been reorganized so it's not godawful + - rscadd: CM357 pistol + - rscadd: pistol cases for the CM70 and CM357 + - rscadd: Holocalls now tell you they are coming from a location + Geoengi: + - tweak: unstations some of the hud alerts. + Gristlebee: + - rscadd: Jetpack harnesses to outpost for 1750 + - rscdel: Black market jetpack harness + - balance: Jetpacks cost 1000 from 2000 at the outpost + - balance: Black market improvised jetpack average cost reduced + - balance: Black market hardsuit jetpack upgrade min price reduced + - balance: Jetpack fullspeed var now determines whether you're affected by damage + slowdown rather than giving a speedboost. + thgvr: + - imageadd: Added Kepori sprites for loadout dresses. +2024-11-03: + Erikafox: + - balance: Outpost vending machines now cost money. + - rscadd: Some cargo packs have new descriptions + - code_imp: cargo is slightly more organized. again + - rscadd: Platforms. Please use them in maps. they look cool. + - imageadd: 'Spooky: Platform sprites' + - bugfix: 2 bolide map fixes. quality control is my passion. + - rscadd: Hermits now breath weirdly sometimes. + - balance: SKM hermits have realized they have been using the wrong calibre round + for the past 3 years and are now fixing such. + MemeSnorfer: + - rscadd: Vigilitas gas masks, which are added to the Harrier and Ranger + - rscadd: Inteq gas masks, which are added to the Colossus, Vaquero, Talos, and + Valor + Sadhorizon: + - rscadd: Added Nanotrasen, Vigilitas and N+S stamps. + thgvr: + - bugfix: chat icons work again + - bugfix: fishing UI has icons again +2024-11-04: + DIB-DOG: + - rscadd: Improved miscellaneous supplies on the Crying Sun + - rscadd: Added a blackbox recorder and set of handrails to the Crying Sun + - bugfix: Changed out the loose beampistols with cased versions on Crying Sun + - bugfix: Fixed Crying Sun roles to display properly + - rscdel: Removed the beer ring and cigarette machine from the Crying Sun + Erikafox: + - rscadd: Energy Bayonets + - rscadd: Some frontiersmen ruins have been updated to have frontiersmen turrets + - rscadd: Clover Photonics' contract for manufacturing turrets has finally caught + up to the CLIP MIC. Expect to see them on the Atlas. + FalloutFalcon: + - code_imp: flaky test github comments dont spam + Gristlebee: + - rscadd: Increases 357 hollowpoint AP to -20 from -50 + - rscadd: PGF Factional office + - rscadd: PGF Faxes + - rscadd: No diagonal indestructible titanium walls + Sadhorizon: + - rscdel: Beluga-class, Box-class, Schmiedeberg-class, Colossus-class, Skipper-class + and Kansatsu-class lost their Ore Redemption Machines. + - tweak: Reflavored Li Tieguai-class to use Cybersun Biodynamics colors. + - balance: Removed the Viper, the Dart Gun and two Ringnecks from the Li Tieguai. + Instead, added a Rattlesnake, a Himehabu and two edaggers. + - bugfix: Li Tieguai captain is now an officer. + zimon9: + - rscadd: Added ability to make cabinets and easels + - bugfix: fixed painting frame persistence and initialization bugs +2024-11-05: + Apogee-dev: + - bugfix: left/right shifted number decals now have dirs and are the right color + Erikafox: + - rscdel: arnold pizza + - rscadd: A new PGF ship is in the neighborhood - Woeful Cthonians have been deployed + in the frontier! + SomeguyManperson: + - bugfix: shields work as intended again 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/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/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/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/feet.dmi b/icons/mob/clothing/feet.dmi index ec9850144f7b..91257ad4f92a 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.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/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..584ca2b2290e 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..8a29d67a8871 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_feet_kepori.dmi b/icons/mob/species/kepori/onmob_feet_kepori.dmi index 93bb6ee443d5..4c1cb26dafc5 100644 Binary files a/icons/mob/species/kepori/onmob_feet_kepori.dmi and b/icons/mob/species/kepori/onmob_feet_kepori.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..7153add0965d 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/vox/onmob_feet_vox.dmi b/icons/mob/species/vox/onmob_feet_vox.dmi index 0b06074851aa..3419e507bca2 100644 Binary files a/icons/mob/species/vox/onmob_feet_vox.dmi and b/icons/mob/species/vox/onmob_feet_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/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/ammunition/ammo.dmi b/icons/obj/ammunition/ammo.dmi index 85e8e368fac8..26b7fd826793 100644 Binary files a/icons/obj/ammunition/ammo.dmi and b/icons/obj/ammunition/ammo.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index ab9af894d43e..486b7be4e6f3 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/clothing/back/backpacks.dmi b/icons/obj/clothing/back/backpacks.dmi index 01e2c1d6923b..407a8210ef7d 100644 Binary files a/icons/obj/clothing/back/backpacks.dmi and b/icons/obj/clothing/back/backpacks.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..ad875e652365 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.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/shoes.dmi b/icons/obj/clothing/shoes.dmi index 00e1da5d54ea..13a0ff6c01f2 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 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/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/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..b0b526c2db7f 100644 Binary files a/icons/obj/guns/attachments.dmi and b/icons/obj/guns/attachments.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/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/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/platform.dmi b/icons/obj/platform.dmi new file mode 100644 index 000000000000..774ad620ed4f Binary files /dev/null and b/icons/obj/platform.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/storage.dmi b/icons/obj/storage.dmi index 275604035e07..b1ce29fe4a09 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/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/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/weapon/axe.dmi b/icons/obj/weapon/axe.dmi index 0ff8a4364833..46d9982ab5f2 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..c77119f5df6f 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-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-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/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/shiptest.dme b/shiptest.dme index 196b5b339446..b8950cb422d5 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -13,6 +13,7 @@ // END_PREFERENCES // BEGIN_INCLUDE +#include "__odlint.dm" #include "_maps\_basemap.dm" #include "code\__byond_version_compat.dm" #include "code\_compile_options.dm" @@ -175,6 +176,7 @@ #include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_hydroponic.dm" #include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_implant.dm" #include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_item.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_transform.dm" #include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_aquarium.dm" #include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_machinery.dm" #include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_supermatter.dm" @@ -434,7 +436,6 @@ #include "code\datums\dog_fashion.dm" #include "code\datums\ductnet.dm" #include "code\datums\emotes.dm" -#include "code\datums\ert.dm" #include "code\datums\forced_movement.dm" #include "code\datums\guestbook.dm" #include "code\datums\holocall.dm" @@ -503,7 +504,6 @@ #include "code\datums\components\construction.dm" #include "code\datums\components\creamed.dm" #include "code\datums\components\deadchat_control.dm" -#include "code\datums\components\dejavu.dm" #include "code\datums\components\deployable.dm" #include "code\datums\components\dooropendeathproc.dm" #include "code\datums\components\earprotection.dm" @@ -567,7 +567,6 @@ #include "code\datums\components\taped.dm" #include "code\datums\components\tether.dm" #include "code\datums\components\thermite.dm" -#include "code\datums\components\twohanded.dm" #include "code\datums\components\udder.dm" #include "code\datums\components\uplink.dm" #include "code\datums\components\wearertargeting.dm" @@ -587,6 +586,9 @@ #include "code\datums\components\fantasy\suffixes.dm" #include "code\datums\components\food\edible.dm" #include "code\datums\components\food\food_storage.dm" +#include "code\datums\components\melee\charged.dm" +#include "code\datums\components\melee\transforming.dm" +#include "code\datums\components\melee\twohanded.dm" #include "code\datums\components\plumbing\_plumbing.dm" #include "code\datums\components\plumbing\chemical_acclimator.dm" #include "code\datums\components\plumbing\filter.dm" @@ -621,7 +623,6 @@ #include "code\datums\diseases\heart_failure.dm" #include "code\datums\diseases\legionvirus.dm" #include "code\datums\diseases\magnitis.dm" -#include "code\datums\diseases\parasitic_infection.dm" #include "code\datums\diseases\parrotpossession.dm" #include "code\datums\diseases\pierrot_throat.dm" #include "code\datums\diseases\retrovirus.dm" @@ -697,6 +698,16 @@ #include "code\datums\elements\food\dunkable.dm" #include "code\datums\elements\food\food_trash.dm" #include "code\datums\elements\food\processable.dm" +#include "code\datums\ert\_ert.dm" +#include "code\datums\ert\ert_clip.dm" +#include "code\datums\ert\ert_frontiersmen.dm" +#include "code\datums\ert\ert_gezena.dm" +#include "code\datums\ert\ert_indies.dm" +#include "code\datums\ert\ert_inteq.dm" +#include "code\datums\ert\ert_nanotrasen.dm" +#include "code\datums\ert\ert_roumain.dm" +#include "code\datums\ert\ert_solgov.dm" +#include "code\datums\ert\ert_syndicate.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" #include "code\datums\helper_datums\icon_snapshot.dm" @@ -1041,7 +1052,9 @@ #include "code\game\MapData\shuttles\misc.dm" #include "code\game\MapData\shuttles\nanotrasen_mimir.dm" #include "code\game\MapData\shuttles\nanotrasen_ranger.dm" +#include "code\game\MapData\shuttles\pgf_bolide.dm" #include "code\game\MapData\shuttles\pgf_crying_sun.dm" +#include "code\game\MapData\shuttles\pgf_woeful_cthonian.dm" #include "code\game\MapData\shuttles\srm_elder.dm" #include "code\game\mecha\mech_bay.dm" #include "code\game\mecha\mech_fabricator.dm" @@ -1145,12 +1158,28 @@ #include "code\game\objects\effects\spawners\bombspawner.dm" #include "code\game\objects\effects\spawners\bundle.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" -#include "code\game\objects\effects\spawners\lootdrop.dm" #include "code\game\objects\effects\spawners\mobspawner.dm" +#include "code\game\objects\effects\spawners\spawner.dm" #include "code\game\objects\effects\spawners\structure.dm" -#include "code\game\objects\effects\spawners\traps.dm" -#include "code\game\objects\effects\spawners\vaultspawner.dm" -#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" +#include "code\game\objects\effects\spawners\random.dm\ai_module.dm" +#include "code\game\objects\effects\spawners\random.dm\anomaly.dm" +#include "code\game\objects\effects\spawners\random.dm\bedsheet.dm" +#include "code\game\objects\effects\spawners\random.dm\boards.dm" +#include "code\game\objects\effects\spawners\random.dm\bureaucracy.dm" +#include "code\game\objects\effects\spawners\random.dm\clothing.dm" +#include "code\game\objects\effects\spawners\random.dm\decoration.dm" +#include "code\game\objects\effects\spawners\random.dm\engineering.dm" +#include "code\game\objects\effects\spawners\random.dm\entertainment.dm" +#include "code\game\objects\effects\spawners\random.dm\exotic.dm" +#include "code\game\objects\effects\spawners\random.dm\food_or_drink.dm" +#include "code\game\objects\effects\spawners\random.dm\maintenance.dm" +#include "code\game\objects\effects\spawners\random.dm\medical.dm" +#include "code\game\objects\effects\spawners\random.dm\random.dm" +#include "code\game\objects\effects\spawners\random.dm\salvaging.dm" +#include "code\game\objects\effects\spawners\random.dm\structure.dm" +#include "code\game\objects\effects\spawners\random.dm\trash.dm" +#include "code\game\objects\effects\spawners\random.dm\vending.dm" +#include "code\game\objects\effects\spawners\random.dm\waste_planet.dm" #include "code\game\objects\effects\temporary_visuals\cult.dm" #include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" #include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" @@ -1239,7 +1268,9 @@ #include "code\game\objects\items\wayfinding.dm" #include "code\game\objects\items\attachments\_attachment.dm" #include "code\game\objects\items\attachments\bayonet.dm" +#include "code\game\objects\items\attachments\energy_bayonet.dm" #include "code\game\objects\items\attachments\laser_sight.dm" +#include "code\game\objects\items\attachments\m17_barrel.dm" #include "code\game\objects\items\attachments\rail_light.dm" #include "code\game\objects\items\attachments\silencer.dm" #include "code\game\objects\items\attachments\stock.dm" @@ -1336,7 +1367,7 @@ #include "code\game\objects\items\melee\stunbaton.dm" #include "code\game\objects\items\melee\sword.dm" #include "code\game\objects\items\melee\teleprod.dm" -#include "code\game\objects\items\melee\transforming.dm" +#include "code\game\objects\items\melee\trickweapon.dm" #include "code\game\objects\items\melee\weaponry.dm" #include "code\game\objects\items\robot\ai_upgrades.dm" #include "code\game\objects\items\robot\robot_items.dm" @@ -1372,6 +1403,7 @@ #include "code\game\objects\items\storage\boxes.dm" #include "code\game\objects\items\storage\briefcase.dm" #include "code\game\objects\items\storage\fancy.dm" +#include "code\game\objects\items\storage\filled_guncases.dm" #include "code\game\objects\items\storage\firstaid.dm" #include "code\game\objects\items\storage\guncases.dm" #include "code\game\objects\items\storage\holsters.dm" @@ -1438,6 +1470,7 @@ #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\petrified_statue.dm" #include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\platforms.dm" #include "code\game\objects\structures\poddoor_assembly.dm" #include "code\game\objects\structures\printer.dm" #include "code\game\objects\structures\radioactive.dm" @@ -1546,6 +1579,7 @@ #include "code\game\turfs\open\floor\plating\asteroid.dm" #include "code\game\turfs\open\floor\plating\beach.dm" #include "code\game\turfs\open\floor\plating\icemoon.dm" +#include "code\game\turfs\open\floor\plating\jungle.dm" #include "code\game\turfs\open\floor\plating\lavaland.dm" #include "code\game\turfs\open\floor\plating\misc_plating.dm" #include "code\game\turfs\open\floor\plating\planet.dm" @@ -1730,10 +1764,12 @@ #include "code\modules\antagonists\disease\disease_mob.dm" #include "code\modules\antagonists\ert\ert.dm" #include "code\modules\antagonists\ert\frontiersmen.dm" +#include "code\modules\antagonists\ert\gezena.dm" #include "code\modules\antagonists\ert\indie.dm" #include "code\modules\antagonists\ert\inteq.dm" #include "code\modules\antagonists\ert\minutemen.dm" #include "code\modules\antagonists\ert\nanotrasen.dm" +#include "code\modules\antagonists\ert\roumain.dm" #include "code\modules\antagonists\ert\solgov.dm" #include "code\modules\antagonists\ert\syndicate.dm" #include "code\modules\antagonists\gang\outfits.dm" @@ -1873,16 +1909,11 @@ #include "code\modules\awaymissions\zlevel.dm" #include "code\modules\awaymissions\mission_code\Academy.dm" #include "code\modules\awaymissions\mission_code\Cabin.dm" -#include "code\modules\awaymissions\mission_code\caves.dm" #include "code\modules\awaymissions\mission_code\centcomAway.dm" #include "code\modules\awaymissions\mission_code\challenge.dm" -#include "code\modules\awaymissions\mission_code\moonoutpost19.dm" #include "code\modules\awaymissions\mission_code\murderdome.dm" -#include "code\modules\awaymissions\mission_code\research.dm" #include "code\modules\awaymissions\mission_code\snowdin.dm" #include "code\modules\awaymissions\mission_code\spacebattle.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" -#include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" #include "code\modules\balloon_alert\balloon_alert.dm" #include "code\modules\buildmode\bm_mode.dm" #include "code\modules\buildmode\buildmode.dm" @@ -1938,7 +1969,6 @@ #include "code\modules\cargo\bounties\reagent.dm" #include "code\modules\cargo\bounties\science.dm" #include "code\modules\cargo\bounties\security.dm" -#include "code\modules\cargo\bounties\slime.dm" #include "code\modules\cargo\bounties\special.dm" #include "code\modules\cargo\bounties\virus.dm" #include "code\modules\cargo\exports\gear.dm" @@ -1958,9 +1988,11 @@ #include "code\modules\cargo\packs\costumes_toys.dm" #include "code\modules\cargo\packs\emergency.dm" #include "code\modules\cargo\packs\exploration.dm" +#include "code\modules\cargo\packs\fishing.dm" #include "code\modules\cargo\packs\food.dm" #include "code\modules\cargo\packs\gun.dm" #include "code\modules\cargo\packs\machinery.dm" +#include "code\modules\cargo\packs\magazines.dm" #include "code\modules\cargo\packs\material.dm" #include "code\modules\cargo\packs\mechs.dm" #include "code\modules\cargo\packs\medical.dm" @@ -2033,10 +2065,12 @@ #include "code\modules\clothing\outfits\standard.dm" #include "code\modules\clothing\outfits\vv_outfit.dm" #include "code\modules\clothing\outfits\ert\frontiersmen_ert.dm" +#include "code\modules\clothing\outfits\ert\gezena_ert.dm" #include "code\modules\clothing\outfits\ert\indie_ert.dm" #include "code\modules\clothing\outfits\ert\inteq_ert.dm" #include "code\modules\clothing\outfits\ert\minutemen_ert.dm" #include "code\modules\clothing\outfits\ert\nanotrasen_ert.dm" +#include "code\modules\clothing\outfits\ert\roumain_ert.dm" #include "code\modules\clothing\outfits\ert\solgov_ert.dm" #include "code\modules\clothing\outfits\ert\syndicate_ert.dm" #include "code\modules\clothing\outfits\factions\frontiersmen.dm" @@ -2224,7 +2258,6 @@ #include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" #include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" #include "code\modules\food_and_drinks\kitchen_machinery\oven.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" #include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" #include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" #include "code\modules\food_and_drinks\recipes\drinks_recipes.dm" @@ -2770,7 +2803,6 @@ #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" -#include "code\modules\mob\living\simple_animal\hostile\human\cat_butcher.dm" #include "code\modules\mob\living\simple_animal\hostile\human\frontiersman.dm" #include "code\modules\mob\living\simple_animal\hostile\human\human.dm" #include "code\modules\mob\living\simple_animal\hostile\human\nanotrasen.dm" @@ -2916,7 +2948,6 @@ #include "code\modules\movespeed\modifiers\misc.dm" #include "code\modules\movespeed\modifiers\mobs.dm" #include "code\modules\movespeed\modifiers\reagent.dm" -#include "code\modules\movespeed\modifiers\status_effects.dm" #include "code\modules\ninja\__ninjaDefines.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\ninja_event.dm" @@ -3129,7 +3160,9 @@ #include "code\modules\projectiles\guns\manufacturer\clip_lanchester\lasers.dm" #include "code\modules\projectiles\guns\manufacturer\etherbor\energy_gunsword.dm" #include "code\modules\projectiles\guns\manufacturer\frontier_import\ballistics.dm" +#include "code\modules\projectiles\guns\manufacturer\nanotrasen_sharplite\ballistics.dm" #include "code\modules\projectiles\guns\manufacturer\scarborough\ballistics.dm" +#include "code\modules\projectiles\guns\manufacturer\serene_sporting\ballistics.dm" #include "code\modules\projectiles\guns\misc\beam_rifle.dm" #include "code\modules\projectiles\guns\misc\blastcannon.dm" #include "code\modules\projectiles\guns\misc\bow.dm" @@ -3205,7 +3238,6 @@ #include "code\modules\reagents\chemistry\recipes\medicine.dm" #include "code\modules\reagents\chemistry\recipes\others.dm" #include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" -#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" #include "code\modules\reagents\chemistry\recipes\special.dm" #include "code\modules\reagents\chemistry\recipes\toxins.dm" #include "code\modules\reagents\reagent_containers\blood_pack.dm" @@ -3305,27 +3337,6 @@ #include "code\modules\research\techweb\_techweb.dm" #include "code\modules\research\techweb\_techweb_node.dm" #include "code\modules\research\techweb\all_nodes.dm" -#include "code\modules\research\xenobiology\xenobio_camera.dm" -#include "code\modules\research\xenobiology\xenobiology.dm" -#include "code\modules\research\xenobiology\crossbreeding\__corecross.dm" -#include "code\modules\research\xenobiology\crossbreeding\_clothing.dm" -#include "code\modules\research\xenobiology\crossbreeding\_misc.dm" -#include "code\modules\research\xenobiology\crossbreeding\_mobs.dm" -#include "code\modules\research\xenobiology\crossbreeding\_potions.dm" -#include "code\modules\research\xenobiology\crossbreeding\_status_effects.dm" -#include "code\modules\research\xenobiology\crossbreeding\_weapons.dm" -#include "code\modules\research\xenobiology\crossbreeding\burning.dm" -#include "code\modules\research\xenobiology\crossbreeding\charged.dm" -#include "code\modules\research\xenobiology\crossbreeding\chilling.dm" -#include "code\modules\research\xenobiology\crossbreeding\consuming.dm" -#include "code\modules\research\xenobiology\crossbreeding\industrial.dm" -#include "code\modules\research\xenobiology\crossbreeding\mutative.dm" -#include "code\modules\research\xenobiology\crossbreeding\prismatic.dm" -#include "code\modules\research\xenobiology\crossbreeding\recurring.dm" -#include "code\modules\research\xenobiology\crossbreeding\regenerative.dm" -#include "code\modules\research\xenobiology\crossbreeding\reproductive.dm" -#include "code\modules\research\xenobiology\crossbreeding\selfsustaining.dm" -#include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" #include "code\modules\ruins\rockplanet_ruin_code.dm" #include "code\modules\ruins\icemoonruin_code\hydroponicslab.dm" #include "code\modules\ruins\icemoonruin_code\library.dm" @@ -3337,8 +3348,10 @@ #include "code\modules\ruins\objects_and_mobs\ash_walker_den.dm" #include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" #include "code\modules\ruins\objects_and_mobs\sin_ruins.dm" +#include "code\modules\ruins\sandplanet_ruin_code\cave_base.dm" #include "code\modules\ruins\spaceruin_code\bigderelict1.dm" #include "code\modules\ruins\spaceruin_code\TheDerelict.dm" +#include "code\modules\ruins\wasteplanet_ruin_code\tradepost.dm" #include "code\modules\screen_alerts\_screen_alerts.dm" #include "code\modules\security_levels\keycard_authentication.dm" #include "code\modules\security_levels\security_levels.dm" @@ -3402,7 +3415,6 @@ #include "code\modules\surgery\bone_repair.dm" #include "code\modules\surgery\brain_surgery.dm" #include "code\modules\surgery\cavity_implant.dm" -#include "code\modules\surgery\core_removal.dm" #include "code\modules\surgery\coronary_bypass.dm" #include "code\modules\surgery\dental_implant.dm" #include "code\modules\surgery\experimental_dissection.dm" diff --git a/sound/effects/Nose_boop.ogg b/sound/effects/Nose_boop.ogg new file mode 100644 index 000000000000..6a742e95eac6 Binary files /dev/null and b/sound/effects/Nose_boop.ogg differ diff --git a/sound/effects/boop.ogg b/sound/effects/boop.ogg new file mode 100644 index 000000000000..482a2a8ecdab Binary files /dev/null and b/sound/effects/boop.ogg differ diff --git a/sound/items/taperecorder/taperecorder_close.ogg b/sound/items/taperecorder/taperecorder_close.ogg new file mode 100644 index 000000000000..ab9f521c5f9f Binary files /dev/null and b/sound/items/taperecorder/taperecorder_close.ogg differ diff --git a/sound/items/taperecorder/taperecorder_open.ogg b/sound/items/taperecorder/taperecorder_open.ogg new file mode 100644 index 000000000000..7b7110fa58ba Binary files /dev/null and b/sound/items/taperecorder/taperecorder_open.ogg differ diff --git a/sound/items/taperecorder/taperecorder_play.ogg b/sound/items/taperecorder/taperecorder_play.ogg new file mode 100644 index 000000000000..1bf4d7a3bd63 Binary files /dev/null and b/sound/items/taperecorder/taperecorder_play.ogg differ diff --git a/sound/items/taperecorder/taperecorder_print.ogg b/sound/items/taperecorder/taperecorder_print.ogg new file mode 100644 index 000000000000..7912d08dc982 Binary files /dev/null and b/sound/items/taperecorder/taperecorder_print.ogg differ diff --git a/sound/items/taperecorder/taperecorder_stop.ogg b/sound/items/taperecorder/taperecorder_stop.ogg new file mode 100644 index 000000000000..a3b0f659928f Binary files /dev/null and b/sound/items/taperecorder/taperecorder_stop.ogg differ diff --git a/sound/misc/claponce1.ogg b/sound/misc/claponce1.ogg new file mode 100644 index 000000000000..1e12d0daa3b5 Binary files /dev/null and b/sound/misc/claponce1.ogg differ diff --git a/sound/misc/claponce2.ogg b/sound/misc/claponce2.ogg new file mode 100644 index 000000000000..10dfdba121b4 Binary files /dev/null and b/sound/misc/claponce2.ogg differ diff --git a/sound/misc/fingersnap1.ogg b/sound/misc/fingersnap1.ogg new file mode 100644 index 000000000000..2d5d255be1ce Binary files /dev/null and b/sound/misc/fingersnap1.ogg differ diff --git a/sound/misc/fingersnap2.ogg b/sound/misc/fingersnap2.ogg new file mode 100644 index 000000000000..d11f2f7a7415 Binary files /dev/null and b/sound/misc/fingersnap2.ogg differ diff --git a/sound/misc/snap2.ogg b/sound/misc/snap2.ogg new file mode 100644 index 000000000000..1537084be43c Binary files /dev/null and b/sound/misc/snap2.ogg differ diff --git a/sound/misc/snap3.ogg b/sound/misc/snap3.ogg new file mode 100644 index 000000000000..ca7506dc2c36 Binary files /dev/null and b/sound/misc/snap3.ogg differ diff --git a/sound/weapons/anglegrinder.ogg b/sound/weapons/anglegrinder.ogg index c0bc5b593a18..ceed497e17cf 100644 Binary files a/sound/weapons/anglegrinder.ogg and b/sound/weapons/anglegrinder.ogg differ diff --git a/tgui/packages/tgui-panel/package.json b/tgui/packages/tgui-panel/package.json index d60ccaaa9b17..f652b74df909 100644 --- a/tgui/packages/tgui-panel/package.json +++ b/tgui/packages/tgui-panel/package.json @@ -4,7 +4,7 @@ "version": "4.3.1", "dependencies": { "common": "workspace:*", - "dompurify": "^2.3.1", + "dompurify": "^2.5.4", "inferno": "^7.4.8", "tgui": "workspace:*", "tgui-dev-server": "workspace:*", diff --git a/tgui/packages/tgui/interfaces/Orbit/helpers.ts b/tgui/packages/tgui/interfaces/Orbit/helpers.ts index 7046f784cd6c..4a90b96eb2b6 100644 --- a/tgui/packages/tgui/interfaces/Orbit/helpers.ts +++ b/tgui/packages/tgui/interfaces/Orbit/helpers.ts @@ -81,10 +81,10 @@ export const isJobOrNameMatch = ( ): boolean => { if (!searchQuery) return true; - const { full_name, job } = observable; + const { name, job } = observable; return ( - full_name?.toLowerCase().includes(searchQuery?.toLowerCase()) || + name?.toLowerCase().includes(searchQuery?.toLowerCase()) || job?.toLowerCase().includes(searchQuery?.toLowerCase()) || false ); diff --git a/tgui/packages/tgui/package.json b/tgui/packages/tgui/package.json index 74ef5f346242..11c36177807e 100644 --- a/tgui/packages/tgui/package.json +++ b/tgui/packages/tgui/package.json @@ -7,7 +7,7 @@ "@types/marked": "^4.0.8", "common": "workspace:*", "dateformat": "^4.5.1", - "dompurify": "^2.3.1", + "dompurify": "^2.5.4", "highlight.js": "^11.5.1", "inferno": "^7.4.8", "inferno-vnode-flags": "^7.4.8", diff --git a/tgui/public/tgui.html b/tgui/public/tgui.html index a518c5f5aacf..5bd21f1b50de 100644 --- a/tgui/public/tgui.html +++ b/tgui/public/tgui.html @@ -510,9 +510,6 @@ + "" ); }; - -// Signal tgui that we're ready to receive updates -Byond.sendMessage('ready');
    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.