diff --git a/.github/alternate_byond_versions.txt b/.github/alternate_byond_versions.txt new file mode 100644 index 0000000000000..7b50af46885eb --- /dev/null +++ b/.github/alternate_byond_versions.txt @@ -0,0 +1,7 @@ +# This file contains extra tests to run for specific BYOND versions. +# This is useful for making sure we maintain compatibility with both older and newer versions, +# while still having our main tests run on a guaranteed pinned version. + +# Format is version: map +# Example: +# 500.1337: runtimestation diff --git a/.github/max_required_byond_client.txt b/.github/max_required_byond_client.txt new file mode 100644 index 0000000000000..faf8058076a2a --- /dev/null +++ b/.github/max_required_byond_client.txt @@ -0,0 +1,8 @@ +# Highest byond client version allowed to be required by the byond world. Set to 9999 to disable the check flat out. +# If the compiled world requires clients use a version higher than this, ci will fail. +# for instance: if this is set to 514, and a pr uses a 515 client feature, an alert will trigger +# If you have to update this number for your pr, you should make it VERY CLEAR in the pr body that you did so. +# (Requiring clients update to connect to the game server is not something we like to spring on them with no notice, +# especially for beta builds where the pager/updater won't let them update without additional configuration.) + +514 diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 047e7083943f9..c88fa24721ea7 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -3,129 +3,236 @@ on: push: branches: - master + - 'project/**' + - 'gh-readonly-queue/master/**' + - 'gh-readonly-queue/project/**' pull_request: branches: - master + - 'project/**' + merge_group: + branches: + - master jobs: run_linters: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Run Linters runs-on: ubuntu-22.04 + concurrency: + group: run_linters-${{ github.head_ref || github.run_id }} + cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Restore SpacemanDMM cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: - path: $HOME/SpacemanDMM - key: ${{ runner.os }}-spacemandmm + path: ~/SpacemanDMM + key: ${{ runner.os }}-spacemandmm-${{ hashFiles('dependencies.sh') }} + restore-keys: | + ${{ runner.os }}-spacemandmm- - name: Restore Yarn cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: tgui/.yarn/cache - key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }} + key: ${{ runner.os }}-yarn-${{ hashFiles('tgui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Restore Node cache + uses: actions/cache@v4 + with: + path: ~/.nvm + key: ${{ runner.os }}-node-${{ hashFiles('dependencies.sh') }} + restore-keys: | + ${{ runner.os }}-node- + - name: Restore Bootstrap cache + uses: actions/cache@v4 + with: + path: tools/bootstrap/.cache + key: ${{ runner.os }}-bootstrap-${{ hashFiles('tools/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-bootstrap- + - name: Restore Rust cache + uses: actions/cache@v4 + with: + path: ~/.cargo + key: ${{ runner.os }}-rust-${{ hashFiles('tools/ci/ci_dependencies.sh')}} + restore-keys: | + ${{ runner.os }}-rust- + - name: Install OpenDream + uses: robinraju/release-downloader@v1.9 + with: + repository: "OpenDreamProject/OpenDream" + tag: "latest" + fileName: "DMCompiler_linux-x64.tar.gz" + extract: true - name: Install Tools run: | pip3 install setuptools - bash tools/ci/install_pcregrep.sh bash tools/ci/install_node.sh bash tools/ci/install_spaceman_dmm.sh dreamchecker + bash tools/ci/install_ripgrep.sh tools/bootstrap/python -c '' - - name: Run Linters + - name: Give Linters A Go + id: linter-setup + run: ':' + - name: Run Grep Checks + if: steps.linter-setup.conclusion == 'success' && !cancelled() + run: bash tools/ci/check_grep.sh + - name: Ticked File Enforcement + if: steps.linter-setup.conclusion == 'success' && !cancelled() + run: | + tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/tgmc_dme.json + tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/unit_tests.json + - name: Run DreamChecker + if: steps.linter-setup.conclusion == 'success' && !cancelled() + shell: bash + run: ~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh + - name: Run OpenDream + if: steps.linter-setup.conclusion == 'success' && !cancelled() + run: ./DMCompiler_linux-x64/DMCompiler tgmc.dme --suppress-unimplemented --define=CIBUILDING | bash tools/ci/annotate_od.sh + - name: Run Map Checks + if: steps.linter-setup.conclusion == 'success' && !cancelled() run: | - bash tools/ci/check_filedirs.sh tgmc.dme - bash tools/ci/check_changelogs.sh - bash tools/ci/check_grep.sh - bash tools/ci/check_misc.sh - tools/bootstrap/python -m tools.maplint.source - tools/build/build --ci lint tgui-test - tools/bootstrap/python -m dmi.test tools/bootstrap/python -m mapmerge2.dmm_test - ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - - name: Annotate Lints - uses: yogstation13/DreamAnnotate@v2 - if: always() - with: - outputFile: output-annotations.txt + 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 tgmc.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 compile_all_maps: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Compile Maps - runs-on: ubuntu-20.04 + needs: [collect_data] + runs-on: ubuntu-22.04 + concurrency: + group: compile_all_maps-${{ github.head_ref || github.run_id }} + cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Restore BYOND cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: - path: $HOME/BYOND - key: ${{ runner.os }}-byond + path: ~/BYOND + key: ${{ runner.os }}-byond-${{ hashFiles('dependencies.sh') }} - name: Compile All Maps run: | bash tools/ci/install_byond.sh source $HOME/BYOND/byond/bin/byondsetup tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS + - name: Check client Compatibility + uses: tgstation/byond-client-compatibility-check@v3 + with: + dmb-location: tgmc.dmb + max-required-client-version: ${{needs.collect_data.outputs.max_required_byond_client}} - run_all_tests: - if: "!contains(github.event.head_commit.message, '[ci skip]')" - name: Integration Tests - runs-on: ubuntu-20.04 - services: - mysql: - image: mysql:latest - env: - MYSQL_ROOT_PASSWORD: root - ports: - - 3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + collect_data: + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) + name: Collect data for other tasks + runs-on: ubuntu-22.04 + outputs: + maps: ${{ steps.map_finder.outputs.maps }} + alternate_tests: ${{ steps.alternate_test_finder.outputs.alternate_tests }} + max_required_byond_client: ${{ steps.max_required_byond_client.outputs.max_required_byond_client }} + concurrency: + group: find_all_maps-${{ github.head_ref || github.run_id }} + cancel-in-progress: true steps: - - uses: actions/checkout@v3 - - name: Setup cache - uses: actions/cache@v3 - with: - path: $HOME/BYOND - key: ${{ runner.os }}-byond - - name: Setup database + - uses: actions/checkout@v4 + - name: Find Maps + id: map_finder run: | - sudo systemctl start mysql - mysql -u root -proot -e 'CREATE DATABASE tg_ci;' - mysql -u root -proot tg_ci < SQL/tgmc-schema.sql - mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' - - name: Install rust-g + echo "$(ls -mw0 _maps/*.json)" > maps_output.txt + sed -i -e s+_maps/+\"+g -e s+.json+\"+g maps_output.txt + echo "Maps: $(cat maps_output.txt)" + echo "maps={\"paths\":[$(cat maps_output.txt)]}" >> $GITHUB_OUTPUT + - name: Find Alternate Tests + id: alternate_test_finder run: | - bash tools/ci/install_rust_g.sh - - name: Compile and run tests + ALTERNATE_TESTS_JSON=$(jq -nRc '[inputs | capture("^(?[0-9]+)\\.(?[0-9]+): (?.+)$")]' .github/alternate_byond_versions.txt) + echo "alternate_tests=$ALTERNATE_TESTS_JSON" >> $GITHUB_OUTPUT + - name: Collect byond client version configuration + id: max_required_byond_client + #the regex here does not filter out non-numbers because error messages about no input are less helpful then error messages about bad input (which includes the bad input) run: | - bash tools/ci/install_byond.sh - source $HOME/BYOND/byond/bin/byondsetup - tools/build/build --ci -DCIBUILDING - bash tools/ci/run_server.sh + echo "max_required_byond_client=$(grep -Ev '^[[:blank:]]{0,}#{1,}|^[[:blank:]]{0,}$' .github/max_required_byond_client.txt | tail -n1)" >> $GITHUB_OUTPUT + + run_all_tests: + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) + name: Integration Tests + needs: [collect_data] + strategy: + fail-fast: false + matrix: + map: ${{ fromJSON(needs.collect_data.outputs.maps).paths }} + concurrency: + group: run_all_tests-${{ github.head_ref || github.run_id }}-${{ matrix.map }} + cancel-in-progress: true + uses: ./.github/workflows/run_integration_tests.yml + with: + map: ${{ matrix.map }} + max_required_byond_client: ${{needs.collect_data.outputs.max_required_byond_client}} + + run_alternate_tests: + if: ( !contains(github.event.head_commit.message, '[ci skip]') && needs.collect_data.outputs.alternate_tests != '[]' ) + name: Alternate Tests + needs: [collect_data] + strategy: + fail-fast: false + matrix: + setup: ${{ fromJSON(needs.collect_data.outputs.alternate_tests) }} + concurrency: + group: run_all_tests-${{ github.head_ref || github.run_id }}-${{ matrix.setup.major }}.${{ matrix.setup.minor }}-${{ matrix.setup.map }} + cancel-in-progress: true + uses: ./.github/workflows/run_integration_tests.yml + with: + map: ${{ matrix.setup.map }} + major: ${{ matrix.setup.major }} + minor: ${{ matrix.setup.minor }} + max_required_byond_client: ${{needs.collect_data.outputs.max_required_byond_client}} + + check_alternate_tests: + if: ( !contains(github.event.head_commit.message, '[ci skip]') && needs.collect_data.outputs.alternate_tests != '[]' ) + name: Check Alternate Tests + needs: [run_alternate_tests] + runs-on: ubuntu-22.04 + steps: + - run: echo Alternate tests passed. test_windows: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Windows Build + needs: [collect_data] runs-on: windows-latest concurrency: group: test_windows-${{ github.head_ref || github.run_id }} cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Restore Yarn cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: tgui/.yarn/cache key: ${{ runner.os }}-yarn-${{ hashFiles('tgui/yarn.lock') }} restore-keys: | - ${{ runner.os }}-build- - ${{ runner.os }}- + ${{ runner.os }}-yarn- - name: Compile run: pwsh tools/ci/build.ps1 env: DM_EXE: "C:\\byond\\bin\\dm.exe" - - name: Create artifact - run: | - md deploy - bash tools/deploy.sh ./deploy - - name: Deploy artifact - uses: actions/upload-artifact@v3 + - name: Check client Compatibility + uses: tgstation/byond-client-compatibility-check@v3 with: - name: deploy - path: deploy + dmb-location: tgmc.dmb + max-required-client-version: ${{needs.collect_data.outputs.max_required_byond_client}} diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml new file mode 100644 index 0000000000000..6f78b743e2759 --- /dev/null +++ b/.github/workflows/run_integration_tests.yml @@ -0,0 +1,72 @@ +# This is a reusable workflow to run integration tests on a single map. +# This is run for every single map in ci_suite.yml. You might want to edit that instead. +name: Run Integration Tests +on: + workflow_call: + inputs: + map: + required: true + type: string + major: + required: false + type: string + minor: + required: false + type: string + max_required_byond_client: + required: true + type: string +jobs: + run_integration_tests: + runs-on: ubuntu-latest + services: + mysql: + image: mysql:latest + env: + MYSQL_ROOT_PASSWORD: root + ports: + - 3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + steps: + - uses: actions/checkout@v4 + - name: Restore BYOND cache + uses: actions/cache@v4 + with: + path: ~/BYOND + key: ${{ runner.os }}-byond-${{ hashFiles('dependencies.sh') }} + - name: Setup database + run: | + sudo systemctl start mysql + mysql -u root -proot -e 'CREATE DATABASE tg_ci;' + mysql -u root -proot tg_ci < SQL/tgmc-schema.sql + - name: Install rust-g + run: | + bash tools/ci/install_rust_g.sh + - name: Configure version + run: | + echo "BYOND_MAJOR=${{ inputs.major }}" >> $GITHUB_ENV + echo "BYOND_MINOR=${{ inputs.minor }}" >> $GITHUB_ENV + if: ${{ inputs.major }} + - name: Compile Tests + id: compile_tests + run: | + bash tools/ci/install_byond.sh + source $HOME/BYOND/byond/bin/byondsetup + tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -WError -NWTG0001 + - name: Run Tests + run: | + source $HOME/BYOND/byond/bin/byondsetup + bash tools/ci/run_server.sh ${{ inputs.map }} + - name: Upload screenshot tests + if: always() + uses: actions/upload-artifact@v4 + with: + name: test_artifacts_${{ inputs.map }}_${{ inputs.major }}_${{ inputs.minor }} + path: data/screenshots_new/ + retention-days: 1 + - name: Check client Compatibility + if: always() && steps.compile_tests.outcome == 'success' + uses: tgstation/byond-client-compatibility-check@v3 + with: + dmb-location: tgmc.dmb + max-required-client-version: ${{inputs.max_required_byond_client}} diff --git a/.gitignore b/.gitignore index daf69010c2bf9..8923c9fa38e8b 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,15 @@ dmdoc/* tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/.NETFramework,Version=v4.0,Profile=Client.AssemblyAttributes.cs tools/hyperscale_converter/output/* + +# JavaScript tools +**/node_modules + +# named byond versions config +/tools/build/dm_versions.json + +# From /tools/define_sanity/check.py - potential output file that we load onto the user's machine that we don't want to have committed. +define_sanity_output.txt + +# Running OpenDream locally +tgmc.json diff --git a/__odlint.dm b/__odlint.dm new file mode 100644 index 0000000000000..b7c120514a1d0 --- /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/map_files/Arachne/TGS_Arachne.dmm b/_maps/map_files/Arachne/TGS_Arachne.dmm index bde4bbd2ebbdf..cf083c870e872 100644 --- a/_maps/map_files/Arachne/TGS_Arachne.dmm +++ b/_maps/map_files/Arachne/TGS_Arachne.dmm @@ -44,14 +44,24 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) +"adB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "aeb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "aen" = ( /obj/effect/turf_decal/warning_stripes/leader, /obj/effect/turf_decal/warning_stripes/box/small{ @@ -66,14 +76,14 @@ }, /area/mainship/squads/general) "afd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/mainship/sterile/side{ dir = 4 }, @@ -94,7 +104,7 @@ /turf/open/floor/mainship/black/corner{ dir = 8 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "ahx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -139,6 +149,17 @@ /obj/effect/landmark/start/job/squadsmartgunner, /turf/open/floor/mainship/black/full, /area/mainship/living/cryo_cells) +"aiC" = ( +/obj/structure/bed/bunkbed, +/obj/effect/landmark/start/job/assault_crewman, +/turf/open/floor/wood, +/area/mainship/living/pilotbunks) +"aiK" = ( +/obj/machinery/light/mainship, +/obj/structure/drop_pod_launcher/mech, +/obj/structure/droppod/nonmob/mech_pod, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "aiT" = ( /obj/machinery/line_nexter, /turf/open/floor/plating, @@ -168,11 +189,29 @@ "ajx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable, /turf/open/floor/mainship/black{ dir = 1 }, /area/mainship/living/pilotbunks) +"ajy" = ( +/obj/structure/table/mainship/nometal, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/glass/rag, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical/lounge) +"ajA" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/silver{ + dir = 8 + }, +/area/mainship/hallways/port_ert) "ajW" = ( /obj/effect/spawner/random/misc/plant, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ @@ -250,18 +289,15 @@ }, /area/mainship/engineering/engineering_workshop) "amv" = ( +/obj/machinery/bodyscanner, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5; + pixel_y = 1 + }, /obj/machinery/power/apc/mainship, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "amV" = ( /obj/effect/turf_decal/warning_stripes/thick/corner{ dir = 8 @@ -271,10 +307,20 @@ }, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"ank" = ( -/obj/structure/cable, -/turf/open/floor/mainship/floor, -/area/mainship/squads/general) +"anm" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/mainship/hallways/repair_bay) +"anI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/docking_port/stationary/marine_dropship/crash_target, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "aoJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -337,6 +383,21 @@ /obj/machinery/vending/weapon, /turf/open/floor/mainship/floor, /area/mainship/squads/general) +"ass" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/light/floor{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/mainship/hallways/repair_bay) "ast" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 1; @@ -579,6 +640,13 @@ }, /turf/open/floor/plating, /area/mainship/medical/medical_science) +"aDg" = ( +/obj/structure/rack, +/obj/item/tool/wrench, +/obj/item/tool/crowbar, +/obj/item/tool/screwdriver, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "aDl" = ( /obj/machinery/telecomms/hub/preset, /turf/open/floor/mainship/tcomms, @@ -602,6 +670,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig_cells) +"aDU" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/machinery/power/apc/mainship, +/obj/structure/cable, +/turf/open/floor/mainship/orange, +/area/mainship/hallways/repair_bay) "aEg" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -609,6 +683,14 @@ /obj/machinery/atmospherics/components/unary/vent_pump/layer1, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) +"aEj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/medical) "aFn" = ( /turf/open/floor/mainship/silver{ dir = 1 @@ -660,7 +742,7 @@ /turf/open/floor/mainship/black{ dir = 8 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "aHQ" = ( /obj/structure/bed/stool{ pixel_y = 8 @@ -696,8 +778,10 @@ /obj/structure/sign/nosmoking_2{ dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "aJt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1, /obj/machinery/firealarm, @@ -710,7 +794,6 @@ /turf/open/floor/mainship/black/full, /area/mainship/living/cryo_cells) "aJy" = ( -/obj/item/autopsy_scanner, /obj/item/tool/surgery/retractor, /obj/item/tool/surgery/circular_saw, /obj/item/tool/surgery/cautery, @@ -721,7 +804,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "aJW" = ( /obj/structure/window/framed/mainship, /obj/structure/disposalpipe/segment, @@ -810,8 +893,14 @@ /obj/machinery/door/firedoor/multi_tile{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "aOy" = ( /obj/structure/mirror, /obj/structure/sink, @@ -837,7 +926,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "aQd" = ( /obj/machinery/light/mainship{ dir = 1 @@ -972,13 +1061,20 @@ dir = 5 }, /area/mainship/squads/general) +"aYf" = ( +/obj/machinery/camera/autoname/mainship, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/mainship/living/numbertwobunks) "aYg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "aYD" = ( /obj/machinery/door/airlock/mainship/generic/glass{ dir = 8 @@ -994,12 +1090,12 @@ /area/mainship/medical/upper_medical) "aZO" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/mainship/sterile/side{ dir = 9 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "baL" = ( /obj/structure/ship_ammo/cas/heavygun, /turf/open/floor/mainship/cargo, @@ -1039,14 +1135,19 @@ /turf/open/floor/mainship/research, /area/mainship/medical/upper_medical) "bcP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 1 }, +/obj/effect/ai_node, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating/plating_catwalk, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "bdd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -1094,7 +1195,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "bej" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -1115,19 +1216,9 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/command/corporateliaison) "bfz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/obj/effect/ai_node, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "bfL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -1223,6 +1314,13 @@ }, /turf/open/floor/mainship/floor, /area/mainship/living/grunt_rnr) +"bjs" = ( +/obj/machinery/door/poddoor/mainship/mech, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/turf/open/floor/mainship/stripesquare, +/area/mainship/hallways/repair_bay) "bkt" = ( /obj/structure/closet/secure_closet/shiptech, /turf/open/floor/mainship/cargo, @@ -1274,7 +1372,7 @@ }, /obj/machinery/door/poddoor/mainship/open/cic, /obj/machinery/door/firedoor/mainship, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/mainship/stripesquare, /area/mainship/hallways/starboard_hallway) "bnU" = ( /obj/effect/turf_decal/warning_stripes/thin{ @@ -1492,6 +1590,15 @@ /obj/machinery/vending/hydronutrients, /turf/open/floor/plating, /area/mainship/hull/port_hull) +"buY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/medical) "bve" = ( /obj/structure/reagent_dispensers/fueltank, /obj/machinery/firealarm, @@ -1543,14 +1650,6 @@ /obj/structure/closet/secure_closet/staff_officer, /turf/open/floor/mainship/black, /area/mainship/command/cic) -"bzN" = ( -/obj/effect/decal/cleanable/blood/oil{ - dir = 1; - name = "grease"; - pixel_x = -7 - }, -/turf/open/floor/plating, -/area/mainship/living/tankerbunks) "bzO" = ( /obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/black{ @@ -1714,7 +1813,7 @@ dir = 4 }, /turf/open/floor/mainship/silver/full, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "bEA" = ( /turf/open/floor/mainship/green{ dir = 4 @@ -1849,12 +1948,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/hull/starboard_hull) -"bLP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/black, -/area/mainship/hallways/port_hallway) "bMC" = ( /obj/machinery/vending/uniform_supply, /obj/machinery/camera/autoname/mainship{ @@ -1918,16 +2011,12 @@ /area/mainship/command/airoom) "bOR" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, /obj/structure/disposalpipe/junction{ dir = 4 }, /obj/effect/ai_node, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "bPL" = ( @@ -1987,6 +2076,11 @@ dir = 1 }, /area/mainship/living/evacuation) +"bUm" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 5 + }, +/area/mainship/medical) "bUt" = ( /obj/structure/disposalpipe/segment/corner{ dir = 1 @@ -2021,10 +2115,10 @@ /turf/open/floor/wood, /area/mainship/medical/lounge) "bVe" = ( -/obj/machinery/griddle, /obj/machinery/light/mainship{ dir = 1 }, +/obj/machinery/vending/marineFood, /turf/open/floor/mainship/sterile/corner, /area/mainship/medical/lounge) "bVt" = ( @@ -2058,7 +2152,7 @@ }, /obj/structure/window/framed/mainship, /turf/open/floor/mainship/floor, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "bYa" = ( /obj/structure/cable, /turf/open/floor/mainship/floor, @@ -2098,12 +2192,12 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 }, -/obj/item/clothing/head/warning_cone, /obj/machinery/landinglight/alamo{ dir = 4; pixel_x = -4 }, -/turf/open/floor/mainship/black/corner{ +/obj/item/clothing/head/warning_cone, +/turf/open/floor/mainship/black{ dir = 1 }, /area/mainship/hallways/hangar) @@ -2158,13 +2252,9 @@ /area/mainship/living/numbertwobunks) "cec" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /obj/effect/ai_node, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) "cek" = ( @@ -2283,6 +2373,18 @@ /obj/machinery/vending/dinnerware, /turf/open/floor/prison/kitchen, /area/mainship/living/grunt_rnr) +"cjk" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/mainship/hallways/repair_bay) "cjw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 @@ -2293,12 +2395,16 @@ /turf/open/floor/plating, /area/mainship/hull/port_hull) "ckd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating/plating_catwalk, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "ckB" = ( /obj/machinery/camera/autoname/mainship{ dir = 4 @@ -2363,6 +2469,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/squads/general) "cmX" = ( @@ -2382,12 +2489,17 @@ /turf/open/floor/mainship/floor, /area/mainship/living/pilotbunks) "cnp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/side{ - dir = 5 + dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "cns" = ( /obj/structure/window/framed/mainship, /obj/structure/disposalpipe/segment{ @@ -2510,6 +2622,28 @@ "crb" = ( /turf/open/floor/mainship/floor, /area/mainship/living/cryo_cells) +"crd" = ( +/obj/structure/rack, +/obj/item/clothing/head/welding, +/obj/item/stack/cable_coil, +/obj/item/tool/weldingtool/largetank, +/obj/item/clothing/head/welding, +/obj/item/tool/weldingtool/largetank, +/obj/item/tool/weldingtool/largetank, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "crL" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/mainship/green{ @@ -2642,6 +2776,15 @@ /obj/machinery/door/firedoor/mainship, /turf/open/floor/mainship/floor, /area/mainship/squads/general) +"cxs" = ( +/obj/vehicle/ridden/wheelchair{ + dir = 1 + }, +/obj/effect/landmark/start/job/medicalofficer, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "cxG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -2792,11 +2935,15 @@ }, /area/mainship/hallways/hangar/droppod) "cDb" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/structure/cable, -/obj/machinery/power/apc/mainship, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/machinery/light/mainship{ + dir = 1 + }, /turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "cDr" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -2842,7 +2989,7 @@ dir = 1 }, /turf/open/floor/mainship/floor, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "cGM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 8; @@ -2851,10 +2998,9 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/chief_mp_office) "cGQ" = ( -/obj/machinery/door/airlock/mainship/generic/pilot/quarters, -/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/floor, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "cIX" = ( /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, @@ -2970,6 +3116,17 @@ dir = 4 }, /area/mainship/medical/upper_medical) +"cPv" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "cPC" = ( /obj/structure/window/framed/mainship, /obj/structure/cable, @@ -3031,6 +3188,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/mainship/floor, /area/mainship/engineering/engineering_workshop) "cQE" = ( @@ -3058,13 +3216,15 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/chief_mp_office) "cSO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/corner{ - dir = 1 +/obj/machinery/computer/autodoc_console, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/junction/flipped{ + dir = 4 }, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile, +/area/mainship/medical) "cTd" = ( /turf/closed/wall/mainship/research/containment/wall/purple{ dir = 1 @@ -3081,6 +3241,7 @@ /obj/machinery/vending/nanomed{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/mainship/black{ dir = 8 }, @@ -3094,10 +3255,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/living/evacuation) -"cTr" = ( -/obj/structure/prop/mainship/sensor_computer3/sd, -/turf/open/floor/mainship/floor, -/area/mainship/command/self_destruct) "cTA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -3156,7 +3313,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "cUX" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -3179,6 +3336,21 @@ dir = 8 }, /area/mainship/squads/general) +"cVq" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/machinery/landinglight/tadpole{ + dir = 1; + pixel_y = -4 + }, +/obj/machinery/light/floor{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/mainship/hallways/hangar) "cVu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ @@ -3193,7 +3365,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "cVA" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 10 @@ -3203,18 +3375,10 @@ dir = 8 }, /area/mainship/hallways/starboard_ert) -"cVM" = ( -/obj/machinery/power/apc/mainship, -/obj/structure/cable, -/turf/open/floor/wood, -/area/mainship/living/pilotbunks) "cVO" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 }, -/obj/machinery/gear{ - id = "supply_elevator_gear" - }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) "cVV" = ( @@ -3271,12 +3435,14 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "cYl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -3307,14 +3473,14 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/general) "daG" = ( -/obj/machinery/door/airlock/mainship/research{ - dir = 2 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor{ dir = 1 }, +/obj/machinery/door/airlock/mainship/medical/glass/research{ + dir = 2 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) "daT" = ( @@ -3375,7 +3541,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ddb" = ( /obj/structure/window/framed/mainship/requisitions, /turf/open/floor/mainship/floor, @@ -3540,6 +3706,21 @@ }, /turf/open/floor/wood, /area/mainship/living/evacuation) +"djb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/medical) "djk" = ( /obj/structure/table/mainship/nometal, /obj/machinery/chem_dispenser/soda{ @@ -3561,6 +3742,19 @@ /obj/machinery/firealarm, /turf/open/floor/wood, /area/mainship/hallways/port_hallway) +"dkg" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "dki" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/structure/window/reinforced/windowstake{ @@ -3571,40 +3765,13 @@ }, /turf/open/floor/mainship/floor, /area/mainship/shipboard/firing_range) -"dkl" = ( -/obj/structure/table/mainship/nometal, -/obj/item/clipboard{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/paper{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/tool/pen{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/tool/stamp/qm{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/machinery/door_control/old/req{ - pixel_y = -5; - pixel_x = -9 - }, -/obj/effect/spawner/random/misc/paperbin{ - pixel_x = -8; - pixel_y = 10 - }, -/turf/open/floor/mainship/green{ - dir = 1 - }, -/area/mainship/squads/req) "dko" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "dkz" = ( /obj/structure/cable, /obj/machinery/door/airlock/mainship/maint{ @@ -3655,7 +3822,9 @@ /obj/item/clothing/head/welding, /obj/item/tool/weldpack, /obj/item/storage/belt/utility/full, -/turf/open/floor/mainship/floor, +/turf/open/floor/mainship/orange{ + dir = 6 + }, /area/mainship/hallways/hangar) "dmK" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1, @@ -3664,6 +3833,17 @@ dir = 8 }, /area/mainship/living/cryo_cells) +"dmT" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/silver{ + dir = 8 + }, +/area/mainship/hallways/starboard_ert) "dnA" = ( /turf/closed/wall/mainship/white, /area/mainship/medical/lounge) @@ -3677,30 +3857,13 @@ /obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/shipboard/firing_range) -"doe" = ( -/obj/structure/rack, -/obj/item/roller, -/obj/item/roller, -/obj/item/storage/box/masks{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/turf/open/floor/mainship/sterile/corner{ - dir = 8 - }, -/area/mainship/medical/lower_medical) "dor" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "dow" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 1 @@ -3709,6 +3872,10 @@ /obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/hallways/starboard_hallway) +"doQ" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "doU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -3737,19 +3904,6 @@ dir = 8 }, /area/mainship/hallways/starboard_hallway) -"dqc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 10 - }, -/turf/open/floor/mainship/floor, -/area/mainship/hallways/hangar) "dqd" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -3809,11 +3963,12 @@ /turf/open/floor/mainship/research, /area/mainship/medical/upper_medical) "drL" = ( -/obj/vehicle/ridden/wheelchair{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mainship/sterile/side{ dir = 1 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "drP" = ( /obj/machinery/firealarm{ dir = 4 @@ -3830,7 +3985,7 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "dsw" = ( /obj/machinery/pipedispenser, /turf/open/floor/mainship/floor, @@ -3876,7 +4031,7 @@ "dwf" = ( /obj/machinery/door/poddoor/mainship/open/cic, /obj/machinery/door/firedoor/mainship, -/turf/open/floor/mainship/black, +/turf/open/floor/mainship/stripesquare, /area/mainship/hallways/starboard_hallway) "dws" = ( /obj/structure/cable, @@ -3937,11 +4092,11 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 }, -/obj/machinery/holopad, /obj/machinery/landinglight/alamo{ dir = 4; pixel_x = -4 }, +/obj/machinery/holopad, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "dAc" = ( @@ -4011,19 +4166,6 @@ dir = 8 }, /area/mainship/squads/general) -"dBJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "dBS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -4035,6 +4177,19 @@ "dCk" = ( /turf/open/floor/mainship/floor, /area/mainship/command/self_destruct) +"dCr" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "dCA" = ( /turf/open/floor/mainship/black/corner, /area/mainship/hallways/starboard_hallway) @@ -4089,8 +4244,12 @@ /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "dGq" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/structure/cable, /turf/open/floor/mainship/black/corner, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "dGu" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ @@ -4185,6 +4344,8 @@ /area/mainship/shipboard/chief_mp_office) "dKd" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "dKf" = ( @@ -4203,20 +4364,9 @@ /turf/open/floor/mainship/silver/full, /area/mainship/medical/upper_medical) "dKZ" = ( -/obj/structure/window/framed/mainship, -/obj/machinery/door/firedoor/mainship, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/layer1, /turf/open/floor/mainship/floor, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "dLR" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 @@ -4233,7 +4383,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "dLY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -4393,7 +4543,7 @@ /obj/structure/window/framed/mainship/white, /obj/machinery/door/firedoor/mainship, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "dQd" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 8 @@ -4423,9 +4573,20 @@ dir = 6 }, /area/mainship/living/grunt_rnr) +"dRQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "dSy" = ( -/obj/machinery/mech_bay_recharge_port, -/turf/open/floor/mainship/floor, +/obj/machinery/computer/dropship_picker, +/turf/open/floor/mainship/orange{ + dir = 10 + }, /area/mainship/hallways/hangar) "dTG" = ( /obj/structure/cable, @@ -4524,6 +4685,17 @@ dir = 4 }, /area/mainship/hallways/starboard_ert) +"eaj" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/light/floor{ + dir = 4 + }, +/turf/open/floor/mainship/silver{ + dir = 4 + }, +/area/mainship/hallways/port_ert) "eaQ" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/wood, @@ -4574,7 +4746,7 @@ }, /obj/item/tool/pen, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ecY" = ( /turf/open/floor/mainship/floor, /area/mainship/living/evacuation) @@ -4652,7 +4824,7 @@ /obj/machinery/light/mainship{ dir = 1 }, -/turf/open/floor/mainship/floor, +/turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) "eik" = ( /obj/structure/bed/chair/wood/wings{ @@ -4676,7 +4848,7 @@ /area/mainship/hull/starboard_hull) "eiz" = ( /turf/closed/wall/mainship, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "eiU" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 8 @@ -4697,16 +4869,21 @@ /turf/open/floor/mainship/sterile/side, /area/mainship/medical/lounge) "ejm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/structure/window/reinforced{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/marine_selector/clothes, +/obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/mainship/black{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, +/turf/open/floor/mainship/floor, /area/mainship/squads/general) "eju" = ( /turf/closed/wall/mainship/outer, @@ -4721,6 +4898,16 @@ }, /turf/open/floor/tile/damaged/panel, /area/mainship/shipboard/brig_cells) +"ekN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/effect/ai_node, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/hallways/repair_bay) "ell" = ( /obj/machinery/camera/autoname/mainship{ dir = 4 @@ -4741,11 +4928,14 @@ /turf/open/floor/wood, /area/mainship/living/pilotbunks) "enc" = ( +/obj/structure/bed/chair/office/dark, /obj/machinery/camera/autoname/mainship{ dir = 8 }, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/medical) "enN" = ( /obj/structure/cable, /turf/open/floor/mainship/floor, @@ -4785,11 +4975,23 @@ }, /area/mainship/living/grunt_rnr) "epc" = ( +/obj/structure/rack, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/storage/box/gloves{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/storage/box/masks{ + pixel_x = 2; + pixel_y = -1 + }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "epm" = ( /obj/machinery/door/window/secure/bridge/aidoor{ dir = 1 @@ -4817,17 +5019,6 @@ dir = 1 }, /area/mainship/engineering/engineering_workshop) -"epM" = ( -/obj/machinery/door/airlock/mainship/maint{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/firedoor{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/hallways/hangar) "epY" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 9 @@ -4880,7 +5071,7 @@ dir = 8 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eqS" = ( /obj/machinery/vending/uniform_supply, /turf/open/floor/mainship/sterile/purple, @@ -4913,10 +5104,14 @@ }, /area/mainship/living/grunt_rnr) "erU" = ( -/obj/structure/cable, -/obj/machinery/holopad, -/turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/ai_node, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) "erY" = ( /obj/machinery/door/firedoor/mainship{ dir = 2 @@ -5006,10 +5201,20 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/starboard_hallway) "ewC" = ( +/obj/structure/rack, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/item/tool/soap/nanotrasen, /turf/open/floor/mainship/sterile/side{ - dir = 8 + dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "exi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -5092,12 +5297,8 @@ /area/mainship/medical/chemistry) "eBe" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) "eBz" = ( @@ -5200,8 +5401,6 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/req) "eFB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) @@ -5232,7 +5431,7 @@ "eGk" = ( /obj/effect/soundplayer, /turf/closed/wall/mainship/white, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eGQ" = ( /obj/machinery/power/apc/mainship{ dir = 8 @@ -5309,7 +5508,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eLl" = ( /turf/open/floor/mainship/sterile/corner{ dir = 4 @@ -5319,17 +5518,6 @@ /obj/effect/ai_node, /turf/open/floor/plating, /area/mainship/medical/upper_medical) -"eLX" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/obj/item/clothing/head/warning_cone, -/obj/machinery/landinglight/alamo{ - dir = 8; - pixel_x = 4 - }, -/turf/open/floor/mainship/black/corner, -/area/mainship/hallways/hangar) "eMc" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/machinery/light/mainship{ @@ -5362,7 +5550,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eMp" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -5375,13 +5563,13 @@ "eNb" = ( /obj/machinery/light/mainship, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eNi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eNj" = ( /obj/effect/ai_node, /obj/effect/landmark/start/latejoin, @@ -5399,10 +5587,17 @@ /area/mainship/command/cic) "eOD" = ( /obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "eOE" = ( /obj/machinery/vending/nanomed{ dir = 8 @@ -5415,7 +5610,7 @@ dir = 2 }, /turf/open/floor/mainship/floor, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "ePf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -5432,7 +5627,7 @@ "ePz" = ( /obj/machinery/vending/dress_supply, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ePN" = ( /obj/structure/table/mainship/nometal, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -5498,10 +5693,16 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/engine_core) "eRq" = ( -/turf/open/floor/mainship/sterile/side{ +/obj/machinery/door/airlock/mainship/medical/glass{ dir = 1 }, -/area/mainship/medical/lower_medical) +/obj/machinery/door/firedoor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "eRz" = ( /obj/structure/cable, /obj/item/clothing/head/warning_cone, @@ -5622,17 +5823,27 @@ dir = 1 }, /area/mainship/engineering/engineering_workshop) +"eUE" = ( +/obj/effect/decal/cleanable/blood/oil{ + dir = 1; + name = "grease"; + pixel_x = -7 + }, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "eVm" = ( -/obj/machinery/door/poddoor/mainship/mech, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/firedoor/mainship, -/turf/open/floor/mainship/floor, -/area/mainship/living/tankerbunks) +/obj/machinery/door/poddoor/mainship/vehicle, +/turf/open/floor/mainship/stripesquare, +/area/mainship/hallways/repair_bay) "eVn" = ( /obj/structure/window/framed/mainship/white, /obj/structure/disposalpipe/segment{ @@ -5836,27 +6047,15 @@ }, /area/mainship/squads/general) "ffA" = ( -/obj/structure/rack, -/obj/item/roller, -/obj/item/roller, -/obj/item/roller, -/obj/item/roller, -/obj/item/storage/box/gloves{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/storage/box/masks{ - pixel_x = 2; - pixel_y = -1 - }, /obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 + dir = 1; + pixel_y = 1 }, -/obj/machinery/light/mainship{ - dir = 8 +/obj/machinery/vending/nanomed{ + dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ffD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -5898,7 +6097,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "fgW" = ( /obj/machinery/light/mainship{ dir = 8 @@ -5928,14 +6127,23 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) -"fhU" = ( -/obj/machinery/light/mainship{ - dir = 8 +"fiz" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 }, -/turf/open/floor/mainship/black{ +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/area/mainship/living/pilotbunks) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera/autoname/mainship, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "fiW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -5973,6 +6181,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/port_hull) +"fjM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/hallways/repair_bay) "fjN" = ( /obj/structure/prop/mainship/name_stencil/M, /turf/open/floor/mainship_hull, @@ -5988,9 +6205,6 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 9 }, -/obj/machinery/gear{ - id = "supply_elevator_gear" - }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) "fkS" = ( @@ -6035,20 +6249,6 @@ }, /turf/open/floor/prison/kitchen, /area/mainship/living/grunt_rnr) -"flT" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/living/tankerbunks) "fmj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -6062,6 +6262,20 @@ /obj/item/shard, /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig_cells) +"fmv" = ( +/obj/structure/disposalpipe/segment/corner{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) +"fnH" = ( +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/mainship/hallways/hangar) "fnN" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -6099,6 +6313,17 @@ dir = 1 }, /area/mainship/living/commandbunks) +"fqh" = ( +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/poddoor/shutters/mainship/open/medical{ + dir = 8 + }, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/obj/effect/soundplayer, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "fqy" = ( /turf/open/floor/plating/plating_catwalk, /area/mainship/engineering/engineering_workshop) @@ -6131,7 +6356,7 @@ /turf/open/floor/mainship/black{ dir = 1 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "fsN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -6181,13 +6406,6 @@ /obj/item/uav_turret/droid, /turf/open/floor/mainship/cargo, /area/mainship/command/airoom) -"fuI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/orange{ - dir = 5 - }, -/area/mainship/hallways/hangar) "fuK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -6216,11 +6434,24 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/general) "fvt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, /obj/effect/turf_decal/warning_stripes/thin, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) +"fvv" = ( +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/firedoor/mainship{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "fvR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -6237,16 +6468,14 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/general) "fwB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable, -/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, /turf/open/floor/plating/plating_catwalk, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "fwY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -6380,13 +6609,13 @@ /turf/open/floor/plating, /area/mainship/medical/cmo_office) "fDq" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/turf/open/floor/mainship/orange{ - dir = 8 +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" }, -/area/mainship/living/tankerbunks) +/obj/machinery/tank_part_fabricator, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "fDt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -6455,12 +6684,8 @@ /area/mainship/medical/chemistry) "fHx" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 }, @@ -6478,26 +6703,6 @@ dir = 5 }, /area/mainship/squads/req) -"fIz" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 10 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment/corner, -/obj/structure/cable, -/obj/machinery/light/mainship{ - dir = 4 - }, -/turf/open/floor/mainship/orange/corner{ - dir = 8 - }, -/area/mainship/living/tankerbunks) "fJh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -6527,21 +6732,6 @@ /obj/effect/ai_node, /turf/open/floor/mainship/floor, /area/mainship/living/commandbunks) -"fJH" = ( -/obj/structure/table/reinforced, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/mainship/black{ - dir = 4 - }, -/area/mainship/squads/general) "fJM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -6563,12 +6753,6 @@ }, /turf/open/floor/plating, /area/mainship/medical/cmo_office) -"fKq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "fKw" = ( /obj/structure/cable, /turf/open/floor/mainship/floor, @@ -6598,18 +6782,9 @@ /turf/open/floor/wood, /area/mainship/command/corporateliaison) "fLo" = ( -/obj/structure/table/mainship/nometal, -/obj/item/storage/firstaid/regular{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/regular, +/obj/machinery/light/mainship, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "fLX" = ( /obj/machinery/door/airlock/mainship/marine/general/smart{ dir = 2 @@ -6645,6 +6820,19 @@ }, /turf/open/floor/plating, /area/mainship/command/airoom) +"fNk" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/obj/machinery/light/mainship{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/mainship/orange/corner{ + dir = 4 + }, +/area/mainship/hallways/repair_bay) "fNw" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 @@ -6896,24 +7084,8 @@ dir = 8 }, /area/mainship/medical/lounge) -"fZA" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/mainship/orange{ - dir = 4 - }, -/area/mainship/living/tankerbunks) "fZU" = ( /obj/machinery/light/mainship, -/obj/structure/ship_ammo/cas/bomb/fourhundred, /turf/open/floor/mainship/cargo/arrow{ dir = 1 }, @@ -6951,6 +7123,16 @@ }, /turf/open/floor/wood, /area/mainship/medical/lounge) +"gcy" = ( +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/mainship/open/medical{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "gdm" = ( /turf/open/floor/mainship/sterile/purple/corner, /area/mainship/medical/upper_medical) @@ -6992,16 +7174,15 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/squads/general) "gey" = ( -/obj/machinery/computer/body_scanconsole, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 }, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "geI" = ( /obj/structure/cable, /obj/machinery/door/poddoor/shutters/mainship/open/hangar{ @@ -7010,7 +7191,6 @@ /turf/open/floor/stairs/rampbottom, /area/mainship/hallways/hangar) "geW" = ( -/obj/structure/ship_ammo/cas/bomblet, /turf/open/floor/mainship/red{ dir = 1 }, @@ -7019,7 +7199,6 @@ /obj/structure/disposalpipe/junction/yjunc{ dir = 1 }, -/obj/machinery/computer/squad_selector, /turf/open/floor/mainship/black, /area/mainship/squads/general) "gfy" = ( @@ -7070,8 +7249,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "gjA" = ( /turf/closed/wall/mainship/research/containment/wall/purple, /area/mainship/medical/medical_science) @@ -7081,13 +7260,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) -"gkl" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/ai_node, -/turf/open/floor/wood, -/area/mainship/living/pilotbunks) "glA" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7125,6 +7297,23 @@ dir = 8 }, /area/mainship/squads/general) +"gmO" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/landinglight/cas{ + pixel_y = 4 + }, +/obj/machinery/light/mainship{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "gmQ" = ( /obj/item/autopsy_scanner, /obj/item/tool/surgery/retractor, @@ -7213,18 +7402,22 @@ }, /area/mainship/living/cryo_cells) "gqj" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/structure/closet/emcloset, -/obj/machinery/light/mainship{ - dir = 1 +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" }, +/obj/machinery/light/floor, /turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "gqm" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/green{ +/obj/machinery/computer/cryopod{ + dir = 2 + }, +/obj/structure/sign/safety/cryogenic{ dir = 4 }, +/turf/open/floor/mainship/cargo, /area/mainship/squads/req) "gqu" = ( /obj/structure/bed/chair{ @@ -7277,16 +7470,13 @@ }, /area/mainship/squads/general) "grh" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/recharger, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 8 }, -/turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "grn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -7319,7 +7509,7 @@ }, /obj/machinery/door/firedoor/multi_tile, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "gtr" = ( /obj/structure/window/framed/mainship, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -7361,23 +7551,15 @@ }, /area/mainship/living/evacuation) "gva" = ( -/obj/structure/cable, -/obj/machinery/power/apc/mainship{ - dir = 4 - }, -/obj/structure/table/mainship/nometal, -/obj/machinery/reagentgrinder, -/obj/item/reagent_containers/glass/beaker/bluespace, -/obj/item/stack/sheet/mineral/phoron{ - amount = 4; - pixel_x = 3; - pixel_y = 3 +/obj/machinery/iv_drip, +/obj/machinery/firealarm{ + dir = 8 }, -/obj/item/reagent_containers/glass/beaker/large, +/obj/machinery/iv_drip, /turf/open/floor/mainship/sterile/side{ - dir = 8 + dir = 4 }, -/area/mainship/medical/chemistry) +/area/mainship/medical) "gvs" = ( /obj/machinery/vending/dinnerware, /turf/open/floor/wood, @@ -7421,7 +7603,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "gwN" = ( /obj/machinery/camera/autoname/mainship{ dir = 8 @@ -7489,13 +7671,19 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/living/bridgebunks) "gzY" = ( -/obj/structure/rack, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, /obj/structure/cable, -/turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/obj/machinery/light/floor{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "gAt" = ( /obj/machinery/light/mainship{ dir = 1 @@ -7527,6 +7715,17 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) +"gCk" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "gCn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -7614,17 +7813,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/engineering/engineering_workshop) -"gGg" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) "gGr" = ( /obj/structure/rack/nometal, /obj/item/stack/sheet/cloth, @@ -7664,6 +7852,22 @@ dir = 8 }, /area/mainship/medical/upper_medical) +"gHZ" = ( +/obj/machinery/bodyscanner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/sterile, +/area/mainship/medical) "gIE" = ( /obj/structure/table/mainship/nometal, /obj/item/clothing/glasses/welding, @@ -7712,7 +7916,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "gJZ" = ( /obj/machinery/door/airlock/mainship/security/glass/free_access{ dir = 8 @@ -7755,20 +7959,6 @@ dir = 4 }, /area/mainship/squads/req) -"gLB" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/recharger, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/ai_node, -/obj/structure/disposalpipe/junction/yjunc, -/turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) "gLH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7783,13 +7973,35 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) "gMi" = ( -/obj/vehicle/ridden/wheelchair{ +/obj/machinery/light/mainship{ dir = 1 }, +/obj/structure/table/mainship/nometal, +/obj/item/storage/syringe_case/regular{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/storage/syringe_case/regular{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/storage/box/gloves{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/storage/box/masks{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/storage/box/masks{ + pixel_x = 2; + pixel_y = -1 + }, /obj/structure/disposalpipe/segment, -/obj/effect/ai_node, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "gMB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -7811,13 +8023,13 @@ /turf/closed/wall/mainship/research/containment/wall/south, /area/mainship/medical/medical_science) "gMW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) "gNh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -7918,7 +8130,7 @@ }, /obj/effect/soundplayer, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "gSi" = ( /turf/open/floor/mainship/silver{ dir = 4 @@ -7970,7 +8182,7 @@ }, /obj/machinery/door/firedoor/multi_tile, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "gVa" = ( /obj/structure/window/framed/mainship, /obj/structure/cable, @@ -8072,6 +8284,29 @@ dir = 6 }, /area/mainship/engineering/engineering_workshop) +"gYz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) +"gYD" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/sign/prop2{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/mainship/orange, +/area/mainship/hallways/repair_bay) "gYN" = ( /obj/effect/turf_decal/warning_stripes/thin, /turf/open/floor/wood, @@ -8138,6 +8373,15 @@ dir = 1 }, /area/mainship/command/airoom) +"hcy" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/structure/disposalpipe/segment/corner{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "hcM" = ( /obj/machinery/door/airlock/multi_tile/mainship/secdoor/glass{ dir = 1; @@ -8232,12 +8476,13 @@ "hfP" = ( /obj/machinery/cloning/vats, /turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "hfV" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 10 }, +/obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/living/pilotbunks) "hgk" = ( @@ -8281,21 +8526,40 @@ }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) -"hiw" = ( -/obj/structure/rack, -/obj/item/tool/crowbar, -/obj/effect/spawner/random/engineering/toolbox, -/obj/item/stack/cable_coil, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 +"hhz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, -/turf/open/floor/mainship/orange/corner{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/area/mainship/living/tankerbunks) +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/mainship/hallways/hangar) +"hhE" = ( +/obj/machinery/power/apc/mainship{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/mainship/living/pilotbunks) +"hiE" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/mainship/hallways/repair_bay) "hiM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -8318,7 +8582,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "hjH" = ( /obj/effect/turf_decal/warning_stripes/thin, /turf/open/floor/mainship/floor, @@ -8341,15 +8605,18 @@ /turf/open/floor/wood, /area/mainship/shipboard/brig) "hlC" = ( -/obj/structure/window/framed/mainship/white, /obj/machinery/door/poddoor/shutters/mainship/open/medical{ dir = 8 }, -/obj/machinery/door/firedoor/mainship{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "hmb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -8423,7 +8690,7 @@ dir = 8 }, /turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "hob" = ( /obj/structure/window/reinforced{ dir = 4 @@ -8439,8 +8706,8 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "hot" = ( /obj/machinery/computer/general_air_control/large_tank_control{ name = "Oxygen Supply Console"; @@ -8506,17 +8773,9 @@ }, /area/mainship/hull/starboard_hull) "hqL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm, -/obj/machinery/computer/sleep_console, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/obj/machinery/bodyscanner, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "hrv" = ( /obj/structure/closet, /obj/item/clothing/under/rank/prisoner, @@ -8688,6 +8947,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_ert) +"hyB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 8; + on = 1 + }, +/obj/docking_port/stationary/marine_dropship/crash_target, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "hyU" = ( /obj/structure/rack, /obj/item/roller, @@ -8700,7 +8967,7 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "hza" = ( /obj/machinery/door/airlock/mainship/generic/glass{ dir = 8 @@ -8728,8 +8995,10 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/port_hull) "hzX" = ( -/obj/machinery/quick_vendor/beginner, -/turf/open/floor/mainship/floor, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 1 + }, /area/mainship/squads/general) "hAo" = ( /obj/structure/cable, @@ -8742,6 +9011,10 @@ /obj/effect/ai_node, /turf/open/floor/mainship/sterile/side, /area/mainship/medical/morgue) +"hAu" = ( +/obj/machinery/vending/medical/shipside, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "hAy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 @@ -8756,17 +9029,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) -"hAZ" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/camera/autoname/mainship{ - dir = 1 - }, -/turf/open/floor/mainship/orange{ - dir = 1 - }, -/area/mainship/living/tankerbunks) "hBd" = ( /obj/structure/prop/mainship/name_stencil/G, /turf/open/floor/mainship_hull, @@ -8884,12 +9146,6 @@ }, /turf/open/floor/wood, /area/mainship/living/evacuation) -"hFd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/floor, -/area/mainship/living/evacuation) "hFf" = ( /obj/machinery/door_control/mainship/ammo{ id = "ammo1"; @@ -8944,10 +9200,6 @@ }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) -"hHI" = ( -/obj/docking_port/stationary/marine_dropship/crash_target, -/turf/closed/wall/mainship, -/area/mainship/living/pilotbunks) "hHY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -9008,6 +9260,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/mainship/hallways/port_hallway) +"hMs" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/mainship/hallways/repair_bay) "hMV" = ( /obj/machinery/door/airlock/multi_tile/mainship/secdoor/glass{ dir = 1; @@ -9043,6 +9303,10 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) +"hNH" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "hNU" = ( /obj/structure/window/framed/mainship/requisitions, /turf/open/floor/mainship/floor, @@ -9089,6 +9353,10 @@ }, /turf/open/floor/mainship/floor, /area/mainship/command/cic) +"hRJ" = ( +/obj/machinery/light/floor, +/turf/open/floor/mainship/black, +/area/mainship/squads/general) "hRN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -9190,6 +9458,9 @@ "hTj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/light/mainship{ + dir = 8 + }, /turf/open/floor/mainship/black{ dir = 9 }, @@ -9233,6 +9504,10 @@ "hVr" = ( /turf/open/shuttle/escapepod/plain, /area/mainship/command/self_destruct) +"hVs" = ( +/obj/structure/ship_ammo/cas/bomblet, +/turf/open/floor/mainship/cargo, +/area/mainship/hallways/hangar) "hVB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -9273,18 +9548,22 @@ }, /turf/open/floor/mainship/floor, /area/mainship/living/numbertwobunks) -"hYj" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 +"hYl" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" }, -/obj/effect/ai_node, -/obj/machinery/light/mainship{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 4; + on = 1 + }, +/obj/machinery/light/floor{ + dir = 1 }, /turf/open/floor/mainship/orange{ - dir = 8 + dir = 1 }, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "hYA" = ( /obj/structure/table/mainship/nometal, /obj/machinery/light/mainship{ @@ -9302,16 +9581,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) -"hYZ" = ( -/obj/machinery/power/apc/mainship, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/silver{ - dir = 1 - }, -/area/mainship/living/evacuation) "hZr" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -9357,13 +9626,13 @@ /turf/open/floor/mainship/red, /area/mainship/shipboard/firing_range) "hZO" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, /obj/machinery/camera/autoname/mainship, /obj/machinery/firealarm{ dir = 8 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "hZW" = ( @@ -9382,17 +9651,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) -"ibc" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/item/clothing/head/warning_cone, -/obj/machinery/landinglight/alamo{ - dir = 1; - pixel_y = -4 - }, -/turf/open/floor/mainship/floor, -/area/mainship/hallways/hangar) "ibd" = ( /obj/structure/table/mainship/nometal, /obj/item/storage/fancy/cigar, @@ -9564,7 +9822,7 @@ "ihB" = ( /obj/structure/cable, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ihK" = ( /turf/closed/wall/mainship/outer, /area/mainship/living/evacuation) @@ -9697,6 +9955,15 @@ /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/mainship/cargo, /area/mainship/command/airoom) +"ioR" = ( +/obj/machinery/cryopod/right, +/obj/machinery/camera/autoname/mainship{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) "ipc" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 2 @@ -9760,6 +10027,10 @@ }, /turf/open/floor/mainship/mono, /area/mainship/squads/req) +"irn" = ( +/obj/structure/window/framed/mainship/hull, +/turf/open/floor/mainship/floor, +/area/mainship/shipboard/firing_range) "irt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -9824,8 +10095,8 @@ /obj/structure/disposalpipe/segment/corner{ dir = 8 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "iuU" = ( /turf/open/floor/mainship/red{ dir = 6 @@ -9840,21 +10111,6 @@ }, /turf/open/floor/wood, /area/mainship/medical/cmo_office) -"iwn" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/cell_charger, -/obj/effect/spawner/random/engineering/powercell, -/obj/effect/spawner/random/engineering/powercell, -/obj/structure/disposalpipe/segment, -/obj/machinery/door_control/mainship/req{ - id = "requisitions"; - name = "Requisitions Shutters"; - dir = 8 - }, -/turf/open/floor/mainship/green{ - dir = 4 - }, -/area/mainship/squads/req) "iwx" = ( /obj/structure/window/reinforced/toughened{ dir = 1 @@ -9894,6 +10150,7 @@ dir = 4 }, /obj/machinery/door/firedoor/mainship, +/obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/squads/general) "iyA" = ( @@ -9965,6 +10222,16 @@ "iAp" = ( /turf/open/shuttle/escapepod/four, /area/mainship/command/self_destruct) +"iAt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "iAS" = ( /obj/structure/table/mainship/nometal, /obj/item/reagent_containers/food/drinks/coffee{ @@ -9984,8 +10251,10 @@ /area/mainship/living/commandbunks) "iBD" = ( /obj/machinery/vending/medical/shipside, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/corner{ + dir = 8 + }, +/area/mainship/medical) "iCH" = ( /turf/open/floor/mainship/sterile/side{ dir = 4 @@ -10109,15 +10378,6 @@ /obj/machinery/door/firedoor/multi_tile, /turf/open/floor/mainship/floor, /area/mainship/command/cic) -"iGv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 1; - on = 1 - }, -/turf/open/floor/mainship/sterile/corner{ - dir = 8 - }, -/area/mainship/medical/lower_medical) "iGy" = ( /obj/structure/bed/chair/nometal{ dir = 8 @@ -10176,30 +10436,6 @@ /obj/machinery/light/mainship/small, /turf/open/floor/mainship/research/containment/floor2, /area/mainship/medical/medical_science) -"iKc" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/vending/nanomed{ - dir = 1 - }, -/turf/open/floor/mainship/orange{ - dir = 1 - }, -/area/mainship/living/tankerbunks) -"iKx" = ( -/obj/structure/table/mainship/nometal, -/obj/item/storage/firstaid/adv{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/adv, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "iKA" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -10240,6 +10476,11 @@ /obj/machinery/holopad, /turf/open/floor/mainship/floor, /area/mainship/medical/upper_medical) +"iLr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/hallways/hangar) "iMr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -10277,15 +10518,6 @@ dir = 6 }, /area/mainship/shipboard/weapon_room) -"iNp" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/obj/effect/ai_node, -/turf/open/floor/mainship/orange{ - dir = 8 - }, -/area/mainship/living/tankerbunks) "iNG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, @@ -10360,16 +10592,14 @@ /obj/effect/turf_decal/warning_stripes/thin, /turf/open/floor/mainship/floor, /area/mainship/squads/req) -"iQF" = ( -/turf/open/floor/plating, -/area/mainship/living/tankerbunks) "iQJ" = ( -/obj/machinery/iv_drip, -/obj/machinery/camera/autoname/mainship{ +/obj/machinery/computer/sleep_console{ dir = 1 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "iQR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -10397,16 +10627,17 @@ }, /area/mainship/hallways/starboard_hallway) "iQX" = ( -/obj/structure/window/framed/mainship/white, /obj/machinery/door/poddoor/shutters/mainship/open/medical{ dir = 8 }, -/obj/machinery/door/firedoor/mainship{ - dir = 8 +/obj/machinery/door/airlock/multi_tile/mainship/medidoor/medbay/free_access{ + dir = 1 + }, +/obj/machinery/door/firedoor/multi_tile{ + dir = 1 }, -/obj/effect/soundplayer, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "iRc" = ( /obj/machinery/door/poddoor/railing{ id = "supply_elevator_railing" @@ -10422,14 +10653,11 @@ /turf/open/floor/wood, /area/mainship/medical/cmo_office) "iRB" = ( -/obj/machinery/cryopod/right, -/obj/machinery/light/mainship{ +/obj/machinery/computer/cryopod{ dir = 8 }, -/turf/open/floor/mainship/sterile/side{ - dir = 1 - }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/corner, +/area/mainship/medical) "iSa" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating/plating_catwalk, @@ -10501,13 +10729,6 @@ dir = 6 }, /area/mainship/living/evacuation) -"iUN" = ( -/obj/machinery/door/poddoor/mainship/open/cic, -/obj/machinery/door/firedoor/mainship, -/turf/open/floor/mainship/black{ - dir = 1 - }, -/area/mainship/hallways/port_hallway) "iUX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10527,7 +10748,7 @@ }, /obj/machinery/light/mainship, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "iVY" = ( /turf/open/floor/mainship/red{ dir = 9 @@ -10603,6 +10824,9 @@ dir = 4 }, /obj/effect/ai_node, +/obj/machinery/light/floor{ + dir = 4 + }, /turf/open/floor/mainship/silver{ dir = 4 }, @@ -10630,9 +10854,12 @@ }, /area/mainship/hallways/starboard_ert) "jal" = ( -/obj/machinery/holopad, +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 4; + on = 1 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jao" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -10706,38 +10933,26 @@ }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) -"jcn" = ( +"jcb" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/landinglight/alamo{ + dir = 8; + pixel_x = 4 }, -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/living/tankerbunks) +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "jcy" = ( /obj/effect/turf_decal/warning_stripes/thick, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"jdq" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) "jeE" = ( /obj/machinery/conveyor{ id = "garbage" @@ -10751,7 +10966,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jeK" = ( /obj/machinery/light/mainship{ dir = 4 @@ -10828,14 +11043,6 @@ /obj/structure/morgue, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/morgue) -"jix" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/light/mainship{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) "jiL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10845,20 +11052,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) -"jiV" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/landinglight/cas{ - pixel_y = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "jjn" = ( /turf/closed/wall/mainship/white, /area/mainship/medical/upper_medical) @@ -10879,6 +11072,9 @@ "jkr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/light/mainship{ + dir = 4 + }, /turf/open/floor/mainship/black{ dir = 5 }, @@ -10899,32 +11095,12 @@ /turf/open/floor/mainship/floor, /area/mainship/living/numbertwobunks) "jlj" = ( -/obj/machinery/light/mainship{ +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/mainship/sterile/side{ dir = 1 }, -/obj/structure/table/mainship/nometal, -/obj/item/storage/syringe_case/regular{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/storage/syringe_case/regular{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/storage/box/gloves{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/storage/box/masks{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/item/storage/box/masks{ - pixel_x = 2; - pixel_y = -1 - }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jlK" = ( /obj/machinery/bot/roomba, /turf/open/floor/mainship/red{ @@ -10937,30 +11113,17 @@ /turf/open/floor/wood, /area/mainship/hallways/starboard_hallway) "jlQ" = ( -/obj/machinery/light/mainship{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jmi" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /turf/open/floor/wood, /area/mainship/command/corporateliaison) -"jmw" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/chemistry) "jmI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -11154,6 +11317,17 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig) "jub" = ( +/obj/structure/table/mainship/nometal, +/obj/item/storage/box/beakers{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/storage/box/pillbottles{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/tool/hand_labeler, +/obj/item/reagent_containers/dropper, /turf/open/floor/mainship/sterile/corner{ dir = 8 }, @@ -11171,17 +11345,6 @@ dir = 1 }, /area/mainship/living/bridgebunks) -"juZ" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/mainship/orange{ - dir = 1 - }, -/area/mainship/living/tankerbunks) "jve" = ( /obj/machinery/vending/weapon, /obj/machinery/light/mainship, @@ -11208,20 +11371,10 @@ }, /area/mainship/engineering/engineering_workshop) "jwi" = ( -/obj/machinery/computer/crew, -/obj/structure/table/mainship/nometal, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/mainship/sterile/side{ + dir = 6 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jxk" = ( /turf/open/floor/mainship/red{ dir = 4 @@ -11253,24 +11406,16 @@ }, /area/mainship/hallways/hangar) "jyX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/table/mainship/nometal, -/obj/item/storage/box/beakers{ - pixel_x = -5; - pixel_y = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 }, -/obj/item/storage/box/pillbottles{ - pixel_x = 6; - pixel_y = 5 +/obj/machinery/power/apc/mainship{ + dir = 4 }, -/obj/item/tool/hand_labeler, -/obj/item/reagent_containers/dropper, +/obj/structure/cable, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "jzy" = ( @@ -11287,15 +11432,11 @@ /turf/open/space/basic, /area/space) "jzJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/segment/corner{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/ai_node, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "jAq" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -11342,17 +11483,12 @@ "jCa" = ( /turf/open/floor/mainship/red, /area/mainship/command/cic) -"jDq" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/mainship/orange{ - dir = 1 +"jDm" = ( +/obj/structure/sign/prop2{ + dir = 8 }, -/area/mainship/living/tankerbunks) +/turf/open/floor/wood, +/area/mainship/living/pilotbunks) "jDI" = ( /obj/structure/barricade/metal{ dir = 1 @@ -11386,7 +11522,7 @@ dir = 8 }, /turf/open/floor/mainship/silver/full, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jGd" = ( /obj/structure/window/framed/mainship, /obj/machinery/door/firedoor/mainship{ @@ -11444,14 +11580,13 @@ /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar/droppod) "jIi" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" }, -/obj/structure/cable, /turf/open/floor/mainship/orange{ dir = 4 }, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "jIk" = ( /obj/structure/cable, /turf/open/shuttle/escapepod/five, @@ -11464,7 +11599,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jIs" = ( /obj/structure/drop_pod_launcher, /obj/structure/droppod, @@ -11491,6 +11626,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_hallway) +"jJe" = ( +/turf/open/floor/mainship/sterile/corner{ + dir = 4 + }, +/area/mainship/medical) "jJz" = ( /turf/open/floor/mainship/silver{ dir = 8 @@ -11520,11 +11660,21 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 10 }, -/obj/structure/closet/firecloset, -/turf/open/floor/mainship/orange/corner{ +/obj/effect/turf_decal/warning_stripes/thin, +/obj/machinery/light/mainship{ + dir = 1 + }, +/turf/open/floor/mainship/orange, +/area/mainship/hallways/repair_bay) +"jKp" = ( +/obj/effect/turf_decal/warning_stripes/thin{ dir = 8 }, -/area/mainship/living/tankerbunks) +/obj/machinery/light/floor{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "jKK" = ( /turf/open/floor/mainship/floor, /area/mainship/shipboard/weapon_room) @@ -11554,6 +11704,7 @@ /obj/item/tool/screwdriver, /obj/item/tool/multitool, /obj/machinery/camera/autoname/mainship, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/mainship/floor, /area/mainship/squads/req) "jLZ" = ( @@ -11587,7 +11738,7 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jNi" = ( /obj/effect/spawner/random/misc/plant, /obj/structure/cable, @@ -11619,6 +11770,8 @@ /obj/machinery/door/firedoor{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "jOo" = ( @@ -11653,13 +11806,6 @@ dir = 1 }, /area/mainship/hallways/hangar) -"jPb" = ( -/obj/machinery/iv_drip, -/obj/machinery/camera/autoname/mainship{ - dir = 8 - }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "jPJ" = ( /obj/structure/barricade/metal, /turf/open/floor/plating, @@ -11718,18 +11864,11 @@ /obj/machinery/door/airlock/multi_tile/mainship/medidoor/medbay/free_access{ dir = 1 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/machinery/door/firedoor/multi_tile{ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "jSU" = ( /obj/machinery/disposal, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -11786,14 +11925,6 @@ dir = 1 }, /area/mainship/hull/starboard_hull) -"jVH" = ( -/obj/machinery/vending/nanomed{ - dir = 1 - }, -/turf/open/floor/mainship/sterile/corner{ - dir = 8 - }, -/area/mainship/medical/lower_medical) "jVO" = ( /obj/effect/decal/cleanable/blood/oil/armorblood, /turf/open/floor/mainship/orange{ @@ -11819,16 +11950,12 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "jYX" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -11875,7 +12002,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "kbS" = ( /obj/structure/table/mainship/nometal, /obj/item/reagent_containers/food/drinks/shaker, @@ -11944,7 +12071,8 @@ /area/mainship/command/telecomms) "kdH" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 + dir = 1; + pixel_y = 1 }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -12060,33 +12188,6 @@ dir = 6 }, /area/mainship/engineering/engineering_workshop) -"kjk" = ( -/obj/machinery/computer/body_scanconsole, -/turf/open/floor/mainship/sterile/corner{ - dir = 4 - }, -/area/mainship/medical/lower_medical) -"kjW" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/light/mainship{ - dir = 4 - }, -/obj/structure/disposalpipe/segment/corner{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/mainship/orange{ - dir = 8 - }, -/area/mainship/living/tankerbunks) "kkz" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -12113,16 +12214,6 @@ dir = 8 }, /area/mainship/hallways/hangar) -"klv" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment/corner{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/living/tankerbunks) "kmZ" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating/plating_catwalk, @@ -12164,13 +12255,6 @@ "kox" = ( /turf/open/floor/mainship/research/containment/floor1, /area/mainship/medical/medical_science) -"koG" = ( -/obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" - }, -/turf/open/floor/mainship/mono, -/area/mainship/living/tankerbunks) "koW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ @@ -12183,12 +12267,23 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/starboard_hallway) "kpp" = ( +/obj/item/storage/toolbox/electrical, +/obj/item/tool/wrench, +/obj/item/cell/apc, +/obj/item/tool/screwdriver, +/obj/item/tool/crowbar, +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/structure/disposalpipe/segment/corner{ + dir = 1 + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, +/obj/machinery/light/floor{ + dir = 1 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "kpw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -12202,7 +12297,9 @@ /area/mainship/hallways/hangar) "kpB" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 + dir = 5; + pixel_x = 1; + pixel_y = 1 }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -12223,14 +12320,14 @@ /obj/structure/cable, /obj/structure/window/framed/mainship, /turf/open/floor/mainship/floor, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "kpJ" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "kpV" = ( /obj/machinery/door/airlock/mainship/generic/mech_pilot/bunk, /obj/effect/turf_decal/warning_stripes/thin{ @@ -12346,8 +12443,11 @@ /area/mainship/squads/general) "ksC" = ( /obj/machinery/computer/cloning_console/vats, +/obj/machinery/light/mainship{ + dir = 1 + }, /turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ksL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 1; @@ -12362,6 +12462,16 @@ }, /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig) +"ksS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical/chemistry) "ktf" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -12394,7 +12504,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ktT" = ( /obj/structure/table/mainship/nometal, /obj/machinery/photocopier, @@ -12441,6 +12551,18 @@ }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar/droppod) +"kvC" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/mainship/hallways/repair_bay) "kvG" = ( /turf/open/floor/mainship/red{ dir = 4 @@ -12672,6 +12794,9 @@ /area/mainship/command/cic) "kFU" = ( /obj/structure/closet/firecloset/full, +/obj/machinery/light/mainship{ + dir = 8 + }, /turf/open/floor/mainship/black{ dir = 8 }, @@ -12758,6 +12883,11 @@ dir = 1 }, /area/mainship/shipboard/firing_range) +"kIo" = ( +/obj/machinery/bot/cleanbot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "kIr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -12772,13 +12902,13 @@ }, /area/mainship/hallways/port_hallway) "kJg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/corner{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 4; + on = 1 }, -/area/mainship/medical/lower_medical) +/obj/structure/disposalpipe/junction, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "kKF" = ( /obj/structure/window/framed/mainship, /obj/machinery/door/poddoor/shutters/mainship/corporate, @@ -12858,7 +12988,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "kNq" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -12907,7 +13037,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "kOa" = ( /obj/structure/bed/chair{ dir = 1 @@ -12917,9 +13047,6 @@ }, /area/mainship/squads/general) "kOp" = ( -/obj/machinery/door/airlock/mainship/maint{ - dir = 2 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/poddoor/shutters/mainship/open/hangar{ @@ -12928,6 +13055,9 @@ /obj/machinery/door/firedoor{ dir = 1 }, +/obj/machinery/door/airlock/mainship/generic/pilot/quarters{ + dir = 1 + }, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/pilotbunks) "kOu" = ( @@ -12982,6 +13112,13 @@ /obj/effect/landmark/start/job/researcher, /turf/open/floor/wood, /area/mainship/medical/medical_science) +"kQT" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "kQU" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -12994,8 +13131,10 @@ /area/mainship/engineering/ce_room) "kRl" = ( /obj/machinery/vending/MarineMed, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "kRS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 @@ -13140,14 +13279,6 @@ /obj/structure/cable, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) -"kXP" = ( -/obj/effect/ai_node, -/obj/effect/decal/cleanable/blood/oil{ - name = "grease"; - pixel_x = -7 - }, -/turf/open/floor/plating, -/area/mainship/living/tankerbunks) "kYh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -13179,9 +13310,9 @@ /area/mainship/squads/general) "lbf" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) @@ -13208,12 +13339,6 @@ }, /turf/open/floor/mainship/black, /area/mainship/squads/general) -"lbs" = ( -/obj/machinery/computer/autodoc_console, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) "lbA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13367,15 +13492,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_hallway) -"lgX" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/living/tankerbunks) "lhw" = ( /obj/machinery/light/mainship, /turf/open/floor/mainship/black, @@ -13449,19 +13565,6 @@ "lkF" = ( /turf/open/space/basic, /area/mainship/shipboard/weapon_room) -"lkL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/light/mainship/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/hull/starboard_hull) "llt" = ( /obj/machinery/power/smes/preset, /obj/structure/cable, @@ -13538,7 +13641,7 @@ /turf/open/floor/mainship/black{ dir = 8 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "lpX" = ( /obj/machinery/light/mainship/small, /turf/open/floor/plating, @@ -13556,12 +13659,20 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/general) "lqi" = ( -/obj/vehicle/ridden/wheelchair{ +/obj/structure/table/mainship/nometal, +/obj/item/storage/firstaid/o2{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/firstaid/toxin, +/turf/open/floor/mainship/sterile/side{ dir = 1 }, -/obj/machinery/holopad, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "lqm" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -13613,9 +13724,21 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) +"lrt" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/medical) "lry" = ( -/obj/structure/cable, -/turf/closed/wall/mainship, +/obj/machinery/door/airlock/mainship/maint{ + dir = 2 + }, +/obj/machinery/door/firedoor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) "lrV" = ( /obj/structure/bed/chair/sofa/left{ @@ -13698,18 +13821,13 @@ /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "ltL" = ( -/obj/machinery/bodyscanner{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/effect/ai_node, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "lud" = ( /obj/effect/spawner/random/misc/plant, /obj/machinery/power/apc/mainship{ @@ -13825,7 +13943,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/mainship, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "lxw" = ( /obj/effect/turf_decal/warning_stripes/box/small{ dir = 1 @@ -13882,9 +14000,7 @@ }, /area/mainship/squads/general) "lAA" = ( -/obj/structure/table/mainship/nometal, -/obj/item/reagent_containers/glass/rag, -/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/griddle, /turf/open/floor/mainship/sterile/side{ dir = 4 }, @@ -13905,12 +14021,13 @@ }, /area/mainship/medical/upper_medical) "lAQ" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "lAS" = ( @@ -13975,11 +14092,14 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "lDB" = ( /obj/structure/closet/cabinet, /turf/open/floor/wood, /area/mainship/living/pilotbunks) +"lEn" = ( +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "lEN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -14016,9 +14136,12 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/squads/general) "lFF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/table/mainship/nometal, +/obj/effect/spawner/random/misc/paperbin{ + pixel_y = 5 + }, +/obj/item/tool/pen, /turf/open/floor/mainship/sterile/side{ dir = 4 }, @@ -14031,22 +14154,6 @@ /obj/effect/landmark/start/job/chiefshipengineer, /turf/open/floor/mainship/floor, /area/mainship/engineering/ce_room) -"lGj" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "lGo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -14060,7 +14167,7 @@ }, /obj/machinery/door/poddoor/mainship/open/cic, /obj/machinery/door/firedoor/mainship, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/mainship/stripesquare, /area/mainship/hallways/port_hallway) "lHe" = ( /obj/effect/ai_node, @@ -14105,7 +14212,7 @@ }, /obj/effect/ai_node, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "lKG" = ( /obj/structure/window/framed/mainship, /obj/machinery/door/poddoor/mainship/ai/exterior{ @@ -14124,17 +14231,6 @@ dir = 5 }, /area/mainship/hallways/port_ert) -"lLa" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable, -/turf/open/floor/mainship/orange{ - dir = 4 - }, -/area/mainship/living/tankerbunks) "lLj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, @@ -14179,23 +14275,16 @@ dir = 5 }, /area/mainship/hull/starboard_hull) +"lNM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "lNQ" = ( /obj/effect/attach_point/weapon/dropship1, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"lOk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "lOu" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 10 @@ -14251,6 +14340,13 @@ }, /turf/open/floor/mainship/floor, /area/mainship/command/telecomms) +"lPW" = ( +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/obj/machinery/door/poddoor/mainship/vehicle, +/turf/open/floor/mainship/stripesquare, +/area/mainship/hallways/repair_bay) "lQn" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/storage/backpack/marine/engineerpack, @@ -14282,13 +14378,9 @@ }, /area/mainship/shipboard/weapon_room) "lQU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/side{ - dir = 10 - }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "lRo" = ( /obj/machinery/light/mainship, /turf/open/floor/mainship/floor, @@ -14337,11 +14429,19 @@ /turf/open/floor/mainship/floor, /area/mainship/hull/starboard_hull) "lSZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/mainship/sterile/corner{ - dir = 1 +/obj/machinery/autodoc, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile, +/area/mainship/medical) "lTh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1, /obj/machinery/door_control/mainship/tcomms{ @@ -14380,7 +14480,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "lVb" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -14420,7 +14520,7 @@ /turf/open/floor/mainship/black/corner{ dir = 1 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "lWW" = ( /obj/machinery/power/apc/mainship{ dir = 8 @@ -14460,8 +14560,15 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) "lYh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "lYs" = ( /obj/structure/rack, /obj/structure/ob_ammo/warhead/plasmaloss, @@ -14485,6 +14592,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 }, +/obj/machinery/light/floor{ + dir = 8 + }, /turf/open/floor/mainship/black{ dir = 8 }, @@ -14626,6 +14736,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/machinery/light/floor{ + dir = 8 + }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "mdJ" = ( @@ -14692,6 +14805,20 @@ }, /turf/open/floor/plating, /area/mainship/living/evacuation) +"mhC" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/medical) "mia" = ( /obj/structure/closet/emcloset, /turf/open/floor/mainship/purple{ @@ -14723,6 +14850,20 @@ "miB" = ( /turf/closed/wall/mainship, /area/mainship/living/commandbunks) +"miC" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/item/clothing/head/warning_cone, +/obj/machinery/landinglight/alamo{ + dir = 1; + pixel_y = -4 + }, +/obj/machinery/light/floor{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "miV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -14761,24 +14902,11 @@ /turf/open/floor/plating, /area/mainship/command/airoom) "mkd" = ( -/obj/structure/rack, -/obj/item/roller, -/obj/item/roller, -/obj/item/roller, -/obj/item/roller, -/obj/item/storage/box/gloves{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/storage/box/masks{ - pixel_x = 2; - pixel_y = -1 - }, /obj/machinery/light/mainship{ dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "mkO" = ( /obj/structure/bed/chair/sofa{ dir = 1 @@ -14793,9 +14921,6 @@ dir = 4 }, /area/mainship/command/cic) -"mmP" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/mainship/living/tankerbunks) "mnB" = ( /obj/structure/rack, /obj/item/reagent_containers/jerrycan{ @@ -14808,12 +14933,6 @@ dir = 8 }, /area/mainship/squads/req) -"mnH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable, -/turf/open/floor/mainship/floor, -/area/mainship/hallways/hangar) "mnY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -14843,7 +14962,13 @@ dir = 4 }, /turf/open/floor/mainship/silver/full, -/area/mainship/medical/lower_medical) +/area/mainship/medical) +"mpp" = ( +/obj/machinery/computer/mech_builder{ + dir = 2 + }, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "mps" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -14890,7 +15015,7 @@ "mrs" = ( /obj/effect/soundplayer, /turf/closed/wall/mainship, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "mrK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -15011,25 +15136,29 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 }, -/obj/machinery/door_control/mainship/mech{ +/obj/machinery/door_control/mainship/vehicle{ dir = 4 }, -/obj/structure/cable, +/obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/orange/corner{ dir = 2 }, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "mvW" = ( /turf/open/floor/mainship/silver{ dir = 5 }, /area/mainship/hallways/starboard_ert) "mwb" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "mwK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -15071,7 +15200,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "mxe" = ( /obj/structure/table/reinforced, /obj/item/tool/hand_labeler, @@ -15157,12 +15286,6 @@ "mzA" = ( /turf/open/floor/mainship/sterile/purple/side, /area/mainship/medical/upper_medical) -"mzL" = ( -/obj/machinery/cryopod/right, -/turf/open/floor/mainship/sterile/side{ - dir = 1 - }, -/area/mainship/medical/lower_medical) "mzU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -15177,7 +15300,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "mzW" = ( /obj/structure/cable, /obj/effect/landmark/start/latejoin, @@ -15185,6 +15308,12 @@ dir = 4 }, /area/mainship/living/cryo_cells) +"mAq" = ( +/obj/machinery/light/floor{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "mAr" = ( /obj/machinery/light/mainship, /obj/structure/cable, @@ -15210,10 +15339,8 @@ /turf/open/floor/mainship/stripesquare, /area/mainship/hallways/starboard_hallway) "mCi" = ( -/obj/structure/table/mainship/nometal, -/obj/item/storage/box/beakers, -/turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/corner, +/area/mainship/medical) "mCo" = ( /obj/structure/prop/mainship/mapping_computer, /turf/open/floor/mainship/blue{ @@ -15259,7 +15386,7 @@ /area/mainship/medical/cmo_office) "mDs" = ( /turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "mDO" = ( /obj/structure/bed/chair/nometal{ dir = 4 @@ -15322,7 +15449,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "mHO" = ( /obj/machinery/light/mainship{ dir = 4 @@ -15481,7 +15608,7 @@ }, /obj/structure/window/framed/mainship, /turf/open/floor/mainship/floor, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "mOa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -15550,6 +15677,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/living/pilotbunks) "mRE" = ( @@ -15678,19 +15806,6 @@ /obj/structure/table/mainship/nometal, /turf/open/floor/mainship/silver/full, /area/mainship/living/evacuation) -"mZk" = ( -/obj/structure/table/mainship/nometal, -/obj/item/storage/firstaid/o2{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/toxin, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "nag" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/firealarm, @@ -15830,6 +15945,12 @@ }, /turf/open/floor/wood, /area/mainship/command/corporateliaison) +"nfv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "nfH" = ( /obj/structure/table/mainship/nometal, /obj/machinery/camera/autoname/mainship, @@ -15868,10 +15989,18 @@ }, /area/mainship/command/self_destruct) "niq" = ( +/obj/machinery/light/mainship{ + dir = 4 + }, /obj/structure/rack, -/obj/item/defibrillator, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/turf/open/floor/mainship/sterile/corner{ + dir = 1 + }, +/area/mainship/medical) "nir" = ( /obj/structure/dropship_equipment/cas/weapon/minirocket_pod, /turf/open/floor/mainship/red{ @@ -15883,14 +16012,10 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nkf" = ( /obj/machinery/door/airlock/mainship/generic{ dir = 4; @@ -15944,12 +16069,6 @@ /obj/machinery/cic_maptable/droppod_maptable, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar/droppod) -"nlA" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 1 - }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "nlJ" = ( /obj/machinery/marine_selector/gear/engi, /turf/open/floor/mainship/black{ @@ -16164,6 +16283,13 @@ dir = 4 }, /area/mainship/hallways/starboard_hallway) +"nuy" = ( +/obj/structure/window/framed/mainship, +/obj/machinery/door/firedoor/mainship{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/mainship/living/pilotbunks) "nuA" = ( /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood, @@ -16214,6 +16340,12 @@ }, /turf/open/floor/mainship/mono, /area/mainship/living/pilotbunks) +"nwm" = ( +/obj/machinery/gear{ + id = "supply_elevator_gear" + }, +/turf/open/floor/mainship/floor, +/area/mainship/squads/req) "nwC" = ( /obj/machinery/vending/boozeomat, /obj/machinery/light/mainship{ @@ -16224,7 +16356,7 @@ "nxX" = ( /obj/structure/filingcabinet/medical, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nye" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -16263,12 +16395,10 @@ /turf/open/floor/plating, /area/mainship/engineering/engineering_workshop) "nzR" = ( -/obj/machinery/iv_drip, -/obj/machinery/light/mainship{ - dir = 4 +/turf/open/floor/mainship/sterile/side{ + dir = 1 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nAq" = ( /obj/machinery/power/apc/mainship, /obj/structure/cable, @@ -16279,9 +16409,6 @@ "nAC" = ( /obj/structure/table/reinforced, /obj/item/storage/surgical_tray, -/obj/machinery/firealarm{ - dir = 4 - }, /obj/item/reagent_containers/spray/surgery{ pixel_x = -5; pixel_y = 10 @@ -16322,15 +16449,11 @@ /turf/open/floor/mainship/tcomms, /area/mainship/command/self_destruct) "nDi" = ( -/obj/machinery/door/airlock/mainship/medical/or/or2{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor{ - dir = 1 +/mob/living/simple_animal/corgi/walten, +/turf/open/floor/mainship/sterile/side{ + dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nDp" = ( /turf/open/floor/mainship/black{ dir = 9 @@ -16364,7 +16487,7 @@ }, /obj/effect/ai_node, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nFf" = ( /obj/machinery/camera/autoname/mainship{ dir = 1 @@ -16403,7 +16526,9 @@ /area/mainship/hallways/hangar) "nHg" = ( /obj/structure/cable, -/turf/open/floor/mainship/floor, +/turf/open/floor/mainship/cargo/arrow{ + dir = 1 + }, /area/mainship/hallways/hangar/droppod) "nHF" = ( /obj/machinery/shower{ @@ -16441,7 +16566,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nIp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -16471,6 +16596,18 @@ "nIZ" = ( /turf/open/floor/plating, /area/mainship/hallways/port_hallway) +"nJj" = ( +/obj/machinery/door/airlock/mainship/generic/pilot/quarters{ + dir = 1 + }, +/obj/machinery/door/firedoor{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/mainship/open/hangar{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/living/pilotbunks) "nJH" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -16525,6 +16662,9 @@ id = "ammo1"; name = "Dropship Armament Storage" }, +/obj/machinery/light/floor{ + dir = 8 + }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "nKQ" = ( @@ -16603,11 +16743,13 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/chief_mp_office) "nNN" = ( +/obj/machinery/bot/cleanbot, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile, +/area/mainship/medical) "nOd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -16653,15 +16795,16 @@ /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) "nQd" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, /turf/open/floor/mainship/cargo/arrow{ dir = 8 }, @@ -16674,9 +16817,6 @@ /area/mainship/living/evacuation) "nQl" = ( /obj/structure/table/mainship/nometal, -/obj/machinery/light/mainship{ - dir = 8 - }, /turf/open/floor/mainship/black{ dir = 8 }, @@ -16692,6 +16832,17 @@ }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) +"nRb" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/mainship/hallways/repair_bay) "nRf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -16718,9 +16869,10 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig_cells) "nRC" = ( -/obj/structure/closet/firecloset/full, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nRS" = ( /turf/open/floor/mainship/black{ dir = 10 @@ -16780,15 +16932,11 @@ /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "nUb" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) -"nUB" = ( -/obj/machinery/computer/cryopod{ - dir = 8 +/obj/machinery/iv_drip, +/turf/open/floor/mainship/sterile/side{ + dir = 1 }, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nUM" = ( /obj/structure/sign/custodian, /obj/structure/closet/emcloset, @@ -16845,19 +16993,14 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/chief_mp_office) "nXM" = ( -/obj/structure/table/reinforced, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/mainship/black{ - dir = 8 - }, +/obj/machinery/computer/squad_selector, +/turf/open/floor/mainship/cargo, /area/mainship/squads/general) "nXR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -16888,8 +17031,6 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/firealarm{ dir = 8 }, @@ -16911,7 +17052,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "nZY" = ( /obj/structure/bed/chair, /obj/item/ammo_casing/bullet, @@ -16920,6 +17061,21 @@ }, /turf/open/floor/tile/damaged/four, /area/mainship/shipboard/chief_mp_office) +"oab" = ( +/obj/structure/table/mainship/nometal, +/obj/machinery/cell_charger, +/obj/effect/spawner/random/engineering/powercell, +/obj/effect/spawner/random/engineering/powercell, +/obj/structure/disposalpipe/segment, +/obj/machinery/door_control/mainship/req{ + dir = 8; + id = "requisitions"; + name = "Requisitions Shutters" + }, +/turf/open/floor/mainship/green{ + dir = 4 + }, +/area/mainship/squads/req) "oaL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -16952,18 +17108,12 @@ /turf/open/floor/wood, /area/mainship/command/corporateliaison) "obq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/vending/nanomed, -/turf/open/floor/mainship/sterile/corner{ +/obj/machinery/light/mainship{ dir = 1 }, -/area/mainship/medical/lower_medical) +/obj/effect/spawner/random/misc/structure/flavorvending/snackweighted, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "ock" = ( /obj/machinery/cryopod/right, /turf/open/floor/mainship/black/full, @@ -16980,6 +17130,11 @@ /obj/machinery/light/mainship/small, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) +"odb" = ( +/turf/open/floor/mainship/cargo/arrow{ + dir = 1 + }, +/area/mainship/hallways/hangar/droppod) "odq" = ( /obj/effect/ai_node, /turf/open/floor/mainship/black/corner{ @@ -16994,18 +17149,11 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/engineering_workshop) "oea" = ( -/obj/structure/table/mainship/nometal, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/tool/weldingtool/largetank, -/obj/item/tool/weldingtool/largetank, -/obj/item/tool/weldingtool/largetank, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/machinery/cryopod/right, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) "oeO" = ( /obj/machinery/door_control/mainship/req{ dir = 4; @@ -17033,6 +17181,9 @@ "ofR" = ( /obj/structure/table/reinforced, /obj/item/storage/firstaid/adv, +/obj/machinery/firealarm{ + dir = 4 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/operating_room_two) "ofY" = ( @@ -17341,14 +17492,17 @@ /area/mainship/engineering/ce_room) "oto" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 9 + dir = 9; + pixel_y = 1 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "otY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -17391,18 +17545,16 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ovg" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 9 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 - }, /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 8; on = 1 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "ovk" = ( @@ -17425,11 +17577,12 @@ /turf/open/floor/wood, /area/mainship/command/corporateliaison) "ovG" = ( -/obj/effect/landmark/start/job/medicalofficer, -/turf/open/floor/mainship/sterile/corner{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 }, -/area/mainship/medical/lower_medical) +/obj/effect/ai_node, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "ovP" = ( /obj/machinery/atmospherics/components/unary/tank/toxins, /obj/machinery/camera/autoname/mainship{ @@ -17473,9 +17626,22 @@ /turf/closed/wall/mainship/outer, /area/mainship/hallways/starboard_hallway) "oyj" = ( -/obj/machinery/bot/cleanbot, +/obj/machinery/robotic_cradle, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/light/floor{ + dir = 1 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "oyu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -17488,7 +17654,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 5 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "oyF" = ( /obj/structure/table/mainship/nometal, /obj/item/storage/fancy/cigar, @@ -17556,21 +17722,10 @@ /turf/open/floor/mainship/black/corner, /area/mainship/hallways/port_hallway) "oBS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/mainship/sterile/side{ + dir = 10 }, -/obj/structure/rack, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/tool/soap/nanotrasen, -/obj/item/tool/soap/nanotrasen, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "oBY" = ( /obj/effect/ai_node, /turf/open/floor/mainship/floor, @@ -17660,7 +17815,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "oEt" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -17745,7 +17900,7 @@ "oIN" = ( /obj/machinery/optable, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "oIU" = ( /obj/structure/table/fancywoodentable, /obj/machinery/faxmachine, @@ -17757,7 +17912,7 @@ dir = 2 }, /turf/open/floor/mainship/mono, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "oJB" = ( /obj/structure/cable, /obj/effect/ai_node, @@ -17786,21 +17941,14 @@ }, /area/mainship/medical/medical_science) "oKH" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/light/mainship{ dir = 1 }, -/obj/machinery/sleeper, -/turf/open/floor/mainship/sterile/corner{ - dir = 1 +/obj/machinery/computer/body_scanconsole{ + dir = 8 }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "oKO" = ( /obj/machinery/light/mainship{ dir = 1 @@ -17910,6 +18058,18 @@ }, /turf/open/floor/mainship/floor, /area/mainship/living/pilotbunks) +"oQU" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 9 + }, +/area/mainship/medical) +"oRm" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "oRT" = ( /obj/machinery/power/apc/mainship, /obj/structure/cable, @@ -18087,6 +18247,9 @@ "oYS" = ( /obj/structure/table/reinforced, /obj/item/storage/firstaid/adv, +/obj/machinery/firealarm{ + dir = 4 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/operating_room_one) "oZG" = ( @@ -18136,7 +18299,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "paR" = ( /obj/machinery/door/airlock/mainship/secure{ dir = 1 @@ -18151,19 +18314,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/command/airoom) -"paT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/ai_node, -/turf/open/floor/mainship/sterile/corner{ - dir = 1 - }, -/area/mainship/medical/lower_medical) "paV" = ( /obj/machinery/door/airlock/mainship/marine/general/sl{ dir = 1 @@ -18187,8 +18337,15 @@ "pcd" = ( /obj/structure/table/mainship/nometal, /obj/item/tool/hand_labeler, +/obj/machinery/vending/nanomed{ + dir = 1 + }, /turf/open/floor/mainship/mono, /area/mainship/living/pilotbunks) +"pce" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "pcP" = ( /obj/machinery/conveyor{ dir = 4; @@ -18204,7 +18361,20 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) +"pdp" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/obj/effect/decal/cleanable/blood/oil{ + dir = 1; + name = "grease"; + pixel_x = 7; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "pdF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -18248,6 +18418,12 @@ dir = 4 }, /area/mainship/medical/upper_medical) +"peR" = ( +/obj/structure/rack, +/obj/item/tool/wrench, +/obj/item/tool/crowbar, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "pfy" = ( /obj/effect/ai_node, /turf/open/floor/wood, @@ -18283,6 +18459,7 @@ /obj/machinery/light/mainship{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/mainship/black{ dir = 4 }, @@ -18346,34 +18523,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/engineering/engine_core) -"pjB" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera/autoname/mainship{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/mainship/orange{ - dir = 8 - }, -/area/mainship/living/tankerbunks) -"pkv" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "pkH" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -18447,23 +18596,21 @@ }, /turf/open/floor/mainship/stripesquare, /area/mainship/hallways/hangar) -"ppr" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 +"ppJ" = ( +/obj/structure/table/mainship/nometal, +/obj/item/storage/firstaid/adv{ + pixel_x = 4; + pixel_y = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 4; - on = 1 +/obj/item/storage/firstaid/adv{ + pixel_x = 2; + pixel_y = 2 }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/living/tankerbunks) -"ppJ" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 4 +/obj/item/storage/firstaid/adv, +/turf/open/floor/mainship/sterile/side{ + dir = 8 }, -/obj/machinery/bot/cleanbot, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ppS" = ( /obj/structure/cable, /obj/machinery/firealarm{ @@ -18495,18 +18642,6 @@ }, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"prS" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/mainship/orange{ - dir = 8 - }, -/area/mainship/living/tankerbunks) "psm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -18520,10 +18655,13 @@ }, /area/mainship/hallways/starboard_hallway) "pso" = ( -/turf/open/floor/mainship/sterile/corner{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "psq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1, /turf/open/floor/mainship/silver{ @@ -18564,7 +18702,7 @@ /area/mainship/hull/starboard_hull) "ptU" = ( /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "puf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -18621,11 +18759,26 @@ }, /turf/open/floor/plating, /area/mainship/hallways/starboard_hallway) +"pvM" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/effect/ai_node, +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/silver{ + dir = 8 + }, +/area/mainship/hallways/starboard_ert) "pwD" = ( /obj/machinery/disposal, /obj/machinery/light/mainship{ dir = 4 }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/mainship/black{ dir = 4 }, @@ -18656,10 +18809,11 @@ /turf/open/floor/wood, /area/mainship/shipboard/brig) "pya" = ( -/obj/structure/window/framed/mainship, -/obj/machinery/door/firedoor/mainship, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/mainship/floor, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "pyh" = ( /obj/machinery/door/airlock/mainship/medical/morgue{ dir = 1 @@ -18684,7 +18838,7 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "pyJ" = ( /turf/open/floor/mainship/sterile/side, /area/mainship/medical/morgue) @@ -18699,29 +18853,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/mainship/shipboard/brig) -"pAm" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/light/mainship, -/turf/open/floor/mainship/orange{ - dir = 1 - }, -/area/mainship/living/tankerbunks) "pAn" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/structure/disposalpipe/segment, /obj/effect/ai_node, /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "pAv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, @@ -18767,6 +18905,12 @@ /obj/structure/noticeboard, /turf/closed/wall/mainship, /area/mainship/living/grunt_rnr) +"pBU" = ( +/obj/machinery/light/mainship{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "pBZ" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -18860,7 +19004,7 @@ }, /obj/structure/disposalpipe/junction/flipped, /turf/open/floor/plating/plating_catwalk, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "pHS" = ( /obj/effect/turf_decal/warning_stripes/thick{ dir = 4 @@ -18940,10 +19084,6 @@ dir = 4 }, /area/mainship/squads/general) -"pLL" = ( -/obj/structure/cable, -/turf/open/floor/wood, -/area/mainship/living/pilotbunks) "pLM" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -19015,17 +19155,10 @@ /turf/open/floor/plating, /area/mainship/hallways/port_hallway) "pOs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/cic_maptable, -/obj/structure/table/mainship/nometal, -/obj/structure/disposalpipe/junction/flipped{ - dir = 4 - }, +/obj/machinery/holopad, /obj/effect/ai_node, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile, +/area/mainship/medical) "pOz" = ( /obj/machinery/light{ dir = 1 @@ -19100,25 +19233,6 @@ dir = 9 }, /area/mainship/squads/general) -"pTZ" = ( -/obj/machinery/door/firedoor/mainship{ - dir = 8 - }, -/obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" - }, -/turf/open/floor/mainship/mono, -/area/mainship/living/tankerbunks) -"pUe" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/side{ - dir = 1 - }, -/area/mainship/medical/lower_medical) "pUk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -19141,6 +19255,17 @@ }, /turf/open/floor/mainship/floor, /area/mainship/command/airoom) +"pVp" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/light/floor{ + dir = 4 + }, +/turf/open/floor/mainship/silver{ + dir = 4 + }, +/area/mainship/hallways/starboard_ert) "pVq" = ( /obj/machinery/door/airlock/mainship/research/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -19216,13 +19341,8 @@ }, /area/mainship/squads/general) "pXS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "pYB" = ( @@ -19285,19 +19405,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"qaV" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/obj/item/clothing/head/warning_cone, -/obj/machinery/landinglight/alamo{ - dir = 4; - pixel_x = -4 - }, -/turf/open/floor/mainship/black/corner{ - dir = 8 - }, -/area/mainship/hallways/hangar) "qba" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -19376,14 +19483,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/command/self_destruct) -"qdl" = ( -/obj/machinery/computer/dropship_picker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/orange{ - dir = 4 - }, -/area/mainship/hallways/hangar) "qdV" = ( /obj/machinery/door/poddoor/mainship/droppod{ dir = 2 @@ -19440,6 +19539,36 @@ }, /turf/open/floor/wood, /area/mainship/hallways/starboard_ert) +"qfK" = ( +/obj/structure/table/mainship/nometal, +/obj/item/clipboard{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/paper{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/tool/pen{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/tool/stamp/qm{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/machinery/door_control/old/req{ + pixel_x = -9; + pixel_y = -5 + }, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -8; + pixel_y = 10 + }, +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/mainship/squads/req) "qfR" = ( /obj/effect/ai_node, /turf/open/floor/mainship/floor, @@ -19489,11 +19618,12 @@ /turf/open/floor/mainship/red, /area/mainship/shipboard/firing_range) "qkF" = ( -/obj/machinery/chem_master, -/turf/open/floor/mainship/sterile/side{ - dir = 8 +/obj/machinery/light/mainship{ + dir = 4 }, -/area/mainship/medical/chemistry) +/obj/structure/closet/firecloset/full, +/turf/open/floor/mainship/sterile/corner, +/area/mainship/medical) "qkM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 @@ -19524,6 +19654,17 @@ }, /turf/open/floor/mainship/floor, /area/mainship/engineering/ce_room) +"qlv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/mainship/hallways/hangar) "qlT" = ( /obj/structure/window/framed/mainship, /obj/machinery/door/firedoor/mainship{ @@ -19551,7 +19692,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "qnf" = ( /obj/structure/table/mainship/nometal, /obj/item/reagent_containers/food/drinks/coffee{ @@ -19697,7 +19838,7 @@ /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, /turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "qrL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -19768,11 +19909,15 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "qvK" = ( /obj/machinery/status_display, /turf/closed/wall/mainship, /area/mainship/engineering/engineering_workshop) +"qvT" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "qwC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -19972,11 +20117,38 @@ }, /area/mainship/shipboard/brig) "qHy" = ( -/mob/living/simple_animal/corgi/walten, -/turf/open/floor/mainship/sterile/corner{ +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/light/floor{ dir = 1 }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) +"qHE" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/obj/machinery/door_control/mainship/mech{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "qHK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -19989,10 +20161,13 @@ /turf/open/floor/wood, /area/mainship/hallways/starboard_ert) "qIh" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/camera/autoname/mainship, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/machinery/firealarm, /turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "qIC" = ( /obj/structure/window/framed/mainship/hull, /turf/open/floor/mainship/floor, @@ -20155,9 +20330,6 @@ /turf/open/floor/prison/kitchen, /area/mainship/living/grunt_rnr) "qQu" = ( -/obj/machinery/gear{ - id = "supply_elevator_gear" - }, /obj/effect/turf_decal/warning_stripes/thin{ dir = 10 }, @@ -20227,7 +20399,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "qTP" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 2 @@ -20271,6 +20443,9 @@ id = "ammo1"; name = "Dropship Armament Storage" }, +/obj/machinery/light/floor{ + dir = 4 + }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "qUk" = ( @@ -20342,11 +20517,9 @@ /turf/open/floor/mainship/floor, /area/mainship/command/self_destruct) "qWR" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/turf/open/floor/mainship/sterile/corner{ - dir = 4 - }, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "qXD" = ( /obj/machinery/light/mainship{ dir = 8 @@ -20366,12 +20539,6 @@ /obj/machinery/holopad, /turf/open/floor/mainship/floor, /area/mainship/engineering/starboard_atmos) -"qYt" = ( -/obj/effect/landmark/start/job/medicalofficer, -/turf/open/floor/mainship/sterile/corner{ - dir = 1 - }, -/area/mainship/medical/lower_medical) "qYJ" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -20383,10 +20550,11 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/weapon_room) "qYN" = ( -/turf/open/floor/mainship/sterile/side{ - dir = 6 - }, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "qZk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -20406,11 +20574,6 @@ dir = 1 }, /area/mainship/squads/general) -"rar" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) "raT" = ( /turf/open/floor/mainship/red{ dir = 8 @@ -20425,16 +20588,6 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/command/airoom) -"rbo" = ( -/obj/machinery/door_control/mainship/mech{ - dir = 8; - name = "Vehicle Bay Shutter"; - id = "vehicle_shutters" - }, -/turf/open/floor/mainship/black{ - dir = 4 - }, -/area/mainship/hallways/hangar) "rbz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -20452,7 +20605,7 @@ dir = 10 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rcc" = ( /obj/structure/bed/chair{ dir = 4 @@ -20523,7 +20676,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rfy" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/secure/medical{ @@ -20545,16 +20698,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) -"rgl" = ( -/obj/structure/cable, -/turf/open/floor/mainship/black{ - dir = 8 - }, -/area/mainship/squads/general) "rgo" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rgp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -20620,20 +20767,12 @@ }, /turf/open/floor/plating, /area/mainship/hallways/starboard_hallway) -"rhO" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/turf/open/floor/mainship/orange{ - dir = 4 - }, -/area/mainship/living/tankerbunks) "rif" = ( /obj/structure/filingcabinet/medical, /turf/open/floor/mainship/sterile/corner{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rih" = ( /obj/machinery/vending/cola, /obj/machinery/camera/autoname/mainship{ @@ -20661,10 +20800,25 @@ }, /area/mainship/squads/req) "riy" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/floor{ + dir = 8 + }, /turf/open/floor/mainship/black{ dir = 4 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "riR" = ( /obj/structure/table/mainship/nometal, /obj/item/reagent_containers/food/drinks/coffee, @@ -20688,11 +20842,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/squads/general) -"rki" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/machinery/floodlight/landing, -/turf/open/floor/plating, -/area/mainship/hallways/hangar) "rkn" = ( /obj/effect/soundplayer, /turf/closed/wall/mainship, @@ -20716,8 +20865,8 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "rlD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -20797,6 +20946,16 @@ /obj/machinery/holopad, /turf/open/floor/wood, /area/mainship/hallways/port_hallway) +"roL" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/mainship/hallways/repair_bay) "roV" = ( /obj/structure/cable, /obj/machinery/power/smes/preset, @@ -20807,12 +20966,14 @@ /area/mainship/hull/starboard_hull) "rpl" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 9 + dir = 8 }, -/turf/open/floor/mainship/orange/corner{ +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/area/mainship/living/tankerbunks) +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "rpm" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -20846,7 +21007,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rpW" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -20875,10 +21036,6 @@ dir = 5 }, /area/mainship/shipboard/brig) -"rqS" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating, -/area/mainship/living/tankerbunks) "rrI" = ( /turf/open/floor/mainship/cargo/arrow{ dir = 8 @@ -20962,6 +21119,7 @@ /area/mainship/command/corporateliaison) "ruq" = ( /obj/effect/turf_decal/warning_stripes/thin, +/obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/living/pilotbunks) "ruC" = ( @@ -21031,6 +21189,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_hallway) +"rxK" = ( +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/firedoor/mainship{ + dir = 2 + }, +/obj/machinery/door/firedoor/mainship{ + dir = 2 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "rxN" = ( /obj/effect/spawner/random/misc/structure/flavorvending/cigaretteweighted, /turf/open/floor/wood, @@ -21132,9 +21300,8 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/engineering_workshop) "rEk" = ( -/obj/machinery/vending/MarineMed/Blood, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rEl" = ( /obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/red, @@ -21182,6 +21349,9 @@ /area/mainship/living/evacuation) "rGp" = ( /obj/machinery/vending/armor_supply, +/obj/machinery/light/mainship{ + dir = 1 + }, /turf/open/floor/mainship/black{ dir = 1 }, @@ -21209,12 +21379,6 @@ }, /turf/open/floor/wood, /area/mainship/living/pilotbunks) -"rHg" = ( -/obj/structure/cable, -/turf/open/floor/mainship/black{ - dir = 4 - }, -/area/mainship/hallways/starboard_hallway) "rHq" = ( /obj/structure/cable, /obj/effect/ai_node, @@ -21276,25 +21440,28 @@ dir = 8 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rJs" = ( -/obj/structure/sign/nosmoking_2{ - dir = 8 +/obj/structure/table/mainship/nometal, +/obj/machinery/recharger, +/obj/machinery/camera/autoname/mainship{ + dir = 1 }, -/obj/effect/spawner/random/misc/structure/flavorvending/snackweighted, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rJC" = ( /obj/structure/closet/secure_closet/military_police, /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig) "rJH" = ( -/obj/structure/rack, -/obj/item/tool/weldingtool/largetank, -/obj/item/stack/cable_coil, -/obj/item/clothing/head/welding, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rJJ" = ( /obj/structure/toilet{ dir = 1 @@ -21318,7 +21485,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 9 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rKQ" = ( /obj/machinery/marine_selector/gear/smartgun, /turf/open/floor/mainship/black{ @@ -21371,17 +21538,6 @@ /obj/structure/table/gamblingtable, /turf/open/floor/wood, /area/mainship/living/evacuation) -"rMD" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 1 - }, -/turf/open/floor/mainship/orange{ - dir = 1 - }, -/area/mainship/living/tankerbunks) "rMY" = ( /obj/machinery/camera/autoname/mainship{ dir = 1 @@ -21411,7 +21567,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rOs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21442,11 +21598,9 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/weapon_room) "rOU" = ( -/obj/machinery/computer/mech_builder{ - dir = 8 - }, -/turf/open/floor/plating, -/area/mainship/living/tankerbunks) +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/repair_bay) "rPd" = ( /obj/machinery/researchcomp, /turf/open/floor/mainship/orange{ @@ -21648,8 +21802,8 @@ /obj/item/bedsheet/medical, /obj/item/bedsheet/medical, /obj/item/bedsheet/medical, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "rXe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -21666,7 +21820,7 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "rYl" = ( /obj/structure/window/framed/mainship, /obj/machinery/door/poddoor/shutters/mainship/corporate, @@ -21804,7 +21958,10 @@ /turf/open/floor/mainship/silver, /area/mainship/command/corporateliaison) "scE" = ( -/obj/machinery/vending/medical/shipside, +/obj/machinery/atmospherics/components/unary/vent_pump/layer1, +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "scL" = ( @@ -21881,6 +22038,21 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/port_hull) +"sgg" = ( +/obj/structure/rack, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/storage/box/gloves{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/storage/box/masks{ + pixel_x = 2; + pixel_y = -1 + }, +/turf/open/floor/mainship/sterile, +/area/mainship/medical) "sgq" = ( /obj/machinery/door/airlock/mainship/generic/glass{ dir = 8 @@ -21992,6 +22164,13 @@ }, /turf/open/floor/wood, /area/mainship/medical/lounge) +"ska" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "ski" = ( /obj/structure/closet/secure_closet/evidence, /obj/item/storage/box/evidence, @@ -22002,17 +22181,15 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/command/self_destruct) "skN" = ( -/obj/machinery/light/mainship{ +/obj/machinery/iv_drip, +/obj/machinery/iv_drip, +/obj/machinery/camera/autoname/mainship{ dir = 8 }, -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, /turf/open/floor/mainship/sterile/corner{ - dir = 8 + dir = 4 }, -/area/mainship/medical/chemistry) +/area/mainship/medical) "skU" = ( /obj/structure/table/mainship/nometal, /turf/open/floor/mainship/research, @@ -22082,8 +22259,7 @@ }, /area/mainship/living/cryo_cells) "snq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/ship_ammo/cas/bomb/fourhundred, /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) "snB" = ( @@ -22097,7 +22273,7 @@ name = "Research Wing" }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "sop" = ( /turf/open/floor/mainship/red/corner{ dir = 2 @@ -22167,6 +22343,13 @@ dir = 1 }, /area/mainship/squads/general) +"srk" = ( +/obj/effect/decal/cleanable/blood/oil{ + name = "grease"; + pixel_x = -7 + }, +/turf/open/floor/plating, +/area/mainship/hallways/repair_bay) "sry" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -22246,6 +22429,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/port_hull) +"sxo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flipped{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/squads/general) "sxI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -22296,21 +22492,13 @@ /obj/item/toy/plush/farwa, /turf/open/floor/wood, /area/mainship/command/corporateliaison) -"sAs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/camera/autoname/mainship{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +"sAF" = ( +/obj/machinery/vending/MarineMed/Blood, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mainship/sterile/side{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/sterile/side, -/area/mainship/medical/chemistry) +/area/mainship/medical) "sBw" = ( /obj/machinery/firealarm{ dir = 8 @@ -22382,7 +22570,7 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "sGt" = ( /obj/structure/table/mainship/nometal, /obj/item/tool/lighter/zippo{ @@ -22410,9 +22598,16 @@ /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/cmo_office) "sHa" = ( -/obj/structure/cable, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "sIh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/light/mainship{ @@ -22513,13 +22708,12 @@ /turf/open/floor/mainship/floor, /area/mainship/living/grunt_rnr) "sLH" = ( -/obj/machinery/firealarm{ - dir = 8 - }, +/obj/machinery/computer/crew, +/obj/structure/table/mainship/nometal, /turf/open/floor/mainship/sterile/side{ - dir = 4 + dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "sLY" = ( /obj/structure/table/mainship/nometal, /obj/machinery/camera/autoname/mainship, @@ -22532,20 +22726,19 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/starboard_atmos) "sMc" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 10 }, -/obj/structure/cable, /turf/open/floor/mainship/orange{ dir = 4 }, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "sMT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -22558,6 +22751,12 @@ /obj/machinery/holopad, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/operating_room_one) +"sMZ" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "sOH" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/structure/cable, @@ -22573,6 +22772,14 @@ dir = 8 }, /area/mainship/command/self_destruct) +"sPf" = ( +/obj/docking_port/stationary/marine_dropship/crash_target, +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) +"sPi" = ( +/obj/effect/landmark/start/job/medicalofficer, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "sPI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -22606,17 +22813,6 @@ dir = 2 }, /area/mainship/squads/req) -"sQo" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/living/tankerbunks) "sQH" = ( /obj/machinery/door/airlock/mainship/marine/general/smart{ dir = 2 @@ -22648,7 +22844,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "sRS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -22691,7 +22887,7 @@ dir = 4 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "sVn" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -22707,21 +22903,7 @@ /obj/structure/ship_ammo/cas/rocket/widowmaker, /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) -"sWV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 8; - on = 1 - }, -/obj/machinery/light/mainship{ - dir = 4 - }, -/turf/open/floor/mainship/black{ - dir = 4 - }, -/area/mainship/hallways/hangar) "sXw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/junction, /turf/open/floor/mainship/sterile/corner{ dir = 4 @@ -22759,10 +22941,12 @@ /area/mainship/medical/lounge) "sZo" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "taf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -22828,10 +23012,6 @@ /obj/machinery/status_display, /turf/closed/wall/mainship, /area/mainship/shipboard/firing_range) -"tbu" = ( -/obj/machinery/robotic_cradle, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "tcz" = ( /obj/machinery/light/mainship, /obj/structure/ship_ammo/cas/minirocket, @@ -22863,12 +23043,12 @@ dir = 8 }, /area/mainship/hallways/port_ert) -"tgD" = ( -/obj/machinery/autodoc, +"tfC" = ( /obj/structure/cable, -/obj/docking_port/stationary/marine_dropship/crash_target, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/mainship/floor, +/area/mainship/squads/general) "tgV" = ( /turf/closed/wall/mainship, /area/mainship/living/numbertwobunks) @@ -22876,13 +23056,13 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 }, -/obj/item/clothing/head/warning_cone, /obj/machinery/landinglight/alamo{ dir = 8; pixel_x = 4 }, -/turf/open/floor/mainship/black/corner{ - dir = 4 +/obj/item/clothing/head/warning_cone, +/turf/open/floor/mainship/black{ + dir = 1 }, /area/mainship/hallways/hangar) "thw" = ( @@ -22969,6 +23149,14 @@ dir = 6 }, /area/mainship/hallways/starboard_hallway) +"tlm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "tmb" = ( /obj/machinery/firealarm, /turf/open/floor/mainship/black{ @@ -23008,13 +23196,6 @@ }, /turf/open/floor/plating, /area/mainship/hull/starboard_hull) -"tqJ" = ( -/obj/machinery/door/poddoor/mainship/open/cic, -/obj/machinery/door/firedoor/mainship, -/turf/open/floor/mainship/black{ - dir = 1 - }, -/area/mainship/hallways/starboard_hallway) "tqL" = ( /obj/machinery/door/airlock/mainship/marine/requisitions, /obj/structure/cable, @@ -23035,12 +23216,14 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/req) "tqM" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "trA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -23052,15 +23235,6 @@ dir = 1 }, /area/mainship/living/evacuation) -"trC" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 9 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/mainship/orange/corner{ - dir = 1 - }, -/area/mainship/living/tankerbunks) "tsI" = ( /obj/machinery/door/poddoor/mainship/ammo{ dir = 2; @@ -23146,7 +23320,7 @@ dir = 1 }, /turf/open/floor/mainship/black, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "tuT" = ( /obj/structure/dropship_equipment/shuttle/flare_launcher, /turf/open/floor/mainship/orange{ @@ -23157,7 +23331,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "tvG" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/wood, @@ -23168,6 +23342,16 @@ /obj/structure/cable, /turf/open/floor/mainship/orange, /area/mainship/engineering/engineering_workshop) +"twA" = ( +/obj/machinery/light/mainship, +/obj/structure/rack, +/obj/item/defibrillator, +/obj/item/defibrillator, +/obj/item/defibrillator, +/obj/item/defibrillator, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "twG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -23193,19 +23377,11 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) "txc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) -"txn" = ( -/obj/machinery/bodyscanner{ - dir = 8 - }, -/turf/open/floor/mainship/sterile/corner{ - dir = 8 +/turf/open/floor/mainship/sterile/side{ + dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "tys" = ( /turf/open/floor/mainship/black{ dir = 4 @@ -23235,15 +23411,20 @@ /turf/open/floor/wood, /area/mainship/command/corporateliaison) "tzN" = ( -/obj/structure/rack, -/obj/item/tool/screwdriver, -/obj/item/tool/wrench, -/obj/item/tool/crowbar, -/obj/machinery/light/mainship{ - dir = 8 +/obj/structure/table/mainship/nometal, +/obj/item/storage/firstaid/regular{ + pixel_x = 4; + pixel_y = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/obj/item/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical) "tzT" = ( /obj/structure/window/framed/mainship, /obj/structure/cable, @@ -23307,8 +23488,8 @@ "tBa" = ( /obj/structure/closet/secure_closet/medical3, /obj/item/storage/surgical_tray, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/side, +/area/mainship/medical) "tBK" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -23331,13 +23512,14 @@ }, /area/mainship/living/starboard_garden) "tCW" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 1; on = 1 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4; + pixel_x = 1 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) "tDi" = ( @@ -23351,6 +23533,14 @@ dir = 10 }, /area/mainship/hallways/hangar/droppod) +"tEt" = ( +/obj/machinery/door_control/mainship/vehicle{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/mainship/hallways/hangar) "tEC" = ( /obj/effect/spawner/random/misc/plant, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -23383,6 +23573,7 @@ pixel_x = 5; pixel_y = 10 }, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/mainship/black{ dir = 8 }, @@ -23423,16 +23614,6 @@ /obj/machinery/floodlight/landing, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"tFM" = ( -/obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" - }, -/obj/machinery/door/firedoor/mainship{ - dir = 8 - }, -/turf/open/floor/mainship/mono, -/area/mainship/living/tankerbunks) "tGC" = ( /obj/structure/prop/tgbrokenvendor/sec, /turf/open/floor/mainship/floor, @@ -23456,6 +23637,25 @@ dir = 1 }, /area/mainship/living/grunt_rnr) +"tHO" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) +"tHW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "tIV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -23540,11 +23740,15 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/req) "tLx" = ( -/obj/machinery/light/mainship{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "tLB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -23579,23 +23783,6 @@ dir = 1 }, /area/mainship/engineering/engineering_workshop) -"tNS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/mainship{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" - }, -/turf/open/floor/mainship/mono, -/area/mainship/living/tankerbunks) "tOf" = ( /obj/structure/window/framed/mainship/white/toughened, /turf/open/floor/mainship/research, @@ -23610,7 +23797,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "tON" = ( /obj/structure/prop/mainship/mapping_computer, /turf/open/floor/mainship/purple{ @@ -23642,7 +23829,7 @@ /area/mainship/engineering/engineering_workshop) "tPr" = ( /turf/closed/wall/mainship/white, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "tPL" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -23689,6 +23876,25 @@ /obj/structure/toilet, /turf/open/floor/mainship/floor, /area/mainship/living/pilotbunks) +"tSL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) +"tSO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/mainship/floor, +/area/mainship/living/evacuation) +"tTd" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/ai_node, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "tTm" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 1; @@ -23715,7 +23921,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "tVr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -23730,6 +23936,9 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, +/obj/machinery/light/mainship{ + dir = 8 + }, /turf/open/floor/mainship/black{ dir = 8 }, @@ -23773,6 +23982,19 @@ }, /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) +"tXW" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/landinglight/alamo{ + dir = 4; + pixel_x = -4 + }, +/obj/machinery/light/floor{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "tYv" = ( /obj/structure/table/mainship/nometal, /obj/machinery/computer/camera_advanced/overwatch/alpha, @@ -23782,6 +24004,17 @@ /turf/open/floor/mainship/floor, /area/mainship/command/cic) "tYy" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/landinglight/alamo{ + pixel_y = 4 + }, /obj/machinery/light/mainship{ dir = 1 }, @@ -23807,9 +24040,14 @@ }, /area/mainship/command/airoom) "uaV" = ( -/obj/machinery/iv_drip, +/obj/machinery/door/airlock/mainship/medical/glass{ + dir = 1 + }, +/obj/machinery/door/firedoor{ + dir = 1 + }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ubJ" = ( /obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/purple{ @@ -23834,15 +24072,6 @@ /obj/effect/ai_node, /turf/open/floor/mainship/floor, /area/mainship/squads/general) -"ucN" = ( -/obj/machinery/door/airlock/mainship/maint{ - dir = 2 - }, -/obj/machinery/door/firedoor{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/hallways/hangar) "ucO" = ( /turf/open/floor/mainship/silver{ dir = 8 @@ -23887,14 +24116,16 @@ dir = 6 }, /area/mainship/command/self_destruct) +"ufS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/mainship/black, +/area/mainship/hallways/port_hallway) "uge" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 8; on = 1 }, -/obj/machinery/firealarm{ - dir = 8 - }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/operating_room_two) "ugt" = ( @@ -23948,7 +24179,7 @@ dir = 2 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ujD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ @@ -24070,7 +24301,6 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/obj/effect/landmark/start/job/medicalofficer, /turf/open/floor/mainship/sterile/side{ dir = 8 }, @@ -24109,10 +24339,28 @@ }, /area/mainship/hallways/hangar) "uoD" = ( -/turf/open/floor/mainship/sterile/side{ - dir = 9 +/obj/structure/table/mainship/nometal, +/obj/item/storage/box/beakers, +/obj/item/reagent_containers/glass/beaker/cryomix{ + name = "cryo beaker"; + pixel_x = 10; + pixel_y = 13 + }, +/obj/item/reagent_containers/glass/beaker/cryomix{ + name = "cryo beaker"; + pixel_x = -10; + pixel_y = 15 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 }, -/area/mainship/medical/lower_medical) +/obj/structure/disposalpipe/segment/corner, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "uoF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -24139,9 +24387,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, -/obj/docking_port/stationary/marine_dropship/crash_target, +/obj/structure/cable, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "upq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -24303,9 +24551,12 @@ /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) "uxQ" = ( -/obj/effect/ai_node, -/turf/open/floor/mainship/cargo/arrow{ - dir = 8 +/obj/structure/cable, +/obj/machinery/light/floor{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 1 }, /area/mainship/squads/general) "uxZ" = ( @@ -24366,13 +24617,13 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 - }, /obj/machinery/landinglight/alamo{ dir = 8; pixel_x = 4 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "uBH" = ( @@ -24383,15 +24634,7 @@ dir = 1 }, /area/mainship/hallways/starboard_hallway) -"uBJ" = ( -/obj/structure/bed/chair/comfy, -/obj/machinery/vending/nanomed, -/turf/open/floor/wood, -/area/mainship/living/pilotbunks) "uCc" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -24402,8 +24645,26 @@ /obj/machinery/camera/autoname/mainship{ dir = 1 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) +"uCj" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) +"uCq" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/mainship/hallways/repair_bay) "uCE" = ( /obj/machinery/camera/autoname/mainship{ dir = 1 @@ -24472,13 +24733,6 @@ }, /turf/open/floor/mainship/black, /area/mainship/squads/req) -"uEB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/mainship/orange{ - dir = 6 - }, -/area/mainship/hallways/hangar) "uFw" = ( /obj/machinery/door/airlock/mainship/generic/glass{ dir = 8 @@ -24578,8 +24832,6 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/ce_room) "uIx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor/mainship{ dir = 2 @@ -24636,6 +24888,16 @@ /area/mainship/medical/cmo_office) "uKE" = ( /obj/machinery/camera/autoname/mainship, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "uKS" = ( @@ -24731,20 +24993,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) -"uPS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/effect/ai_node, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) "uQp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24908,7 +25156,7 @@ dir = 8 }, /turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "uWN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -24925,9 +25173,6 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 }, -/obj/machinery/gear{ - id = "supply_elevator_gear" - }, /turf/open/floor/mainship/floor, /area/mainship/squads/req) "uXA" = ( @@ -24952,28 +25197,29 @@ }, /turf/open/floor/mainship/black, /area/mainship/hallways/port_hallway) +"uYz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/mainship/squads/general) "vab" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/structure/cable, /turf/open/floor/mainship/red, /area/mainship/shipboard/weapon_room) "vaj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/machinery/light/mainship{ dir = 1 }, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/mainship/sterile/side{ - dir = 1 +/obj/machinery/computer/body_scanconsole{ + dir = 8 }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "van" = ( /obj/machinery/camera/autoname/mainship{ dir = 1 @@ -24985,10 +25231,15 @@ /turf/open/floor/mainship/floor, /area/mainship/living/evacuation) "vbh" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/firealarm, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/sign/prop4{ + dir = 1 + }, /turf/open/floor/mainship/orange, -/area/mainship/living/tankerbunks) +/area/mainship/hallways/repair_bay) "vbs" = ( /obj/structure/table/mainship/nometal, /obj/effect/spawner/random/misc/paperbin{ @@ -25021,12 +25272,25 @@ /turf/open/floor/mainship/sterile/corner{ dir = 4 }, -/area/mainship/medical/lower_medical) -"vdS" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/camera/autoname/mainship{ +/area/mainship/medical) +"vdm" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) +"vdG" = ( +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/poddoor/shutters/mainship/open/medical{ dir = 8 }, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) +"vdS" = ( +/obj/machinery/chem_master, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "vec" = ( @@ -25048,15 +25312,6 @@ /obj/structure/cable, /turf/open/floor/mainship/floor, /area/mainship/command/cic) -"veo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/silver{ - dir = 1 - }, -/area/mainship/living/evacuation) "veE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -25153,6 +25408,18 @@ /obj/structure/cable, /turf/open/floor/mainship/black, /area/mainship/hallways/hangar/droppod) +"vjh" = ( +/obj/machinery/door/airlock/multi_tile/mainship/medidoor/medbay/free_access{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/mainship/open/medical{ + dir = 8 + }, +/obj/machinery/door/firedoor/multi_tile{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "vjA" = ( /turf/open/floor/mainship/floor, /area/mainship/shipboard/chief_mp_office) @@ -25340,6 +25607,7 @@ /obj/structure/disposalpipe/junction/yjunc{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/squads/general) "vpf" = ( @@ -25362,7 +25630,7 @@ /turf/open/floor/mainship/black{ dir = 8 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "vqy" = ( /obj/machinery/door/airlock/mainship/medical/glass/research{ dir = 2 @@ -25372,7 +25640,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "vqS" = ( /obj/machinery/door/airlock/mainship/medical/or/or2{ dir = 2 @@ -25401,6 +25669,19 @@ /obj/structure/window/framed/mainship/hull, /turf/open/floor/plating, /area/mainship/hull/port_hull) +"vqY" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/machinery/landinglight/alamo{ + dir = 8; + pixel_x = 4 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "vri" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 @@ -25494,11 +25775,10 @@ /turf/open/floor/mainship/floor, /area/mainship/shipboard/chief_mp_office) "vuj" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/computer/med_data, /obj/machinery/light/mainship{ dir = 4 }, +/obj/machinery/vending/medical/shipside, /turf/open/floor/mainship/sterile/side, /area/mainship/medical/chemistry) "vuE" = ( @@ -25523,14 +25803,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) -"vwt" = ( -/obj/structure/rack, -/obj/item/defibrillator, -/obj/item/defibrillator, -/obj/structure/cable, -/obj/effect/ai_node, -/turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) "vxW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -25569,7 +25841,7 @@ dir = 2 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "vzL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 1; @@ -25599,9 +25871,6 @@ dir = 8 }, /area/mainship/hallways/hangar) -"vAD" = ( -/turf/open/floor/mainship/sterile/corner, -/area/mainship/medical/lower_medical) "vAL" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/structure/cable, @@ -25682,9 +25951,6 @@ /turf/open/floor/mainship_hull, /area/space) "vEN" = ( -/obj/machinery/door/airlock/multi_tile/mainship/medidoor/medbay/free_access{ - dir = 1 - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -25692,14 +25958,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/poddoor/shutters/mainship/open/medical{ +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/firedoor/mainship{ dir = 8 }, -/obj/machinery/door/firedoor/multi_tile{ - dir = 1 +/obj/machinery/door/poddoor/shutters/mainship/open/medical{ + dir = 8 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "vFr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1{ dir = 8; @@ -25710,11 +25977,6 @@ }, /turf/open/floor/mainship/floor, /area/mainship/shipboard/brig) -"vFu" = ( -/obj/machinery/door/poddoor/mainship/mech, -/obj/machinery/door/firedoor/mainship, -/turf/open/floor/mainship/floor, -/area/mainship/living/tankerbunks) "vFx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -25723,6 +25985,20 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_hallway) +"vFz" = ( +/obj/machinery/door/poddoor/mainship/mech, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/turf/open/floor/mainship/stripesquare, +/area/mainship/hallways/repair_bay) "vFY" = ( /obj/effect/ai_node, /turf/open/floor/wood, @@ -25887,9 +26163,6 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_hallway) "vLI" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -25897,6 +26170,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1; + pixel_y = 1 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) "vLX" = ( @@ -25939,17 +26216,15 @@ }, /turf/open/floor/mainship/research, /area/mainship/medical/upper_medical) +"vOb" = ( +/obj/effect/landmark/start/job/assault_crewman, +/turf/open/floor/wood, +/area/mainship/living/pilotbunks) "vOG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/effect/spawner/random/misc/structure/flavorvending/coffeeweighted, /obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "vON" = ( /obj/structure/prop/mainship/sensor_computer2, /obj/effect/turf_decal/warning_stripes/thin{ @@ -25982,17 +26257,6 @@ dir = 4 }, /area/mainship/medical/upper_medical) -"vQh" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/silver{ - dir = 1 - }, -/area/mainship/living/evacuation) "vQH" = ( /obj/machinery/computer/med_data, /turf/open/floor/mainship/sterile/dark, @@ -26098,6 +26362,17 @@ }, /turf/open/floor/wood, /area/mainship/living/commandbunks) +"vTo" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/hangar) "vTV" = ( /obj/machinery/marine_selector/clothes/commander, /turf/open/floor/mainship/floor, @@ -26109,11 +26384,11 @@ }, /area/mainship/squads/general) "vUV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 8; - on = 1 +/obj/machinery/light/mainship{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ dir = 4 }, /turf/open/floor/mainship/sterile/side, @@ -26155,19 +26430,6 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) -"vXb" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 - }, -/obj/machinery/door_control/mainship/mech{ - dir = 4; - name = "Vehicle Bay Shutter"; - id = "vehicle_shutters" - }, -/turf/open/floor/mainship/orange/corner{ - dir = 4 - }, -/area/mainship/living/tankerbunks) "vXn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -26214,21 +26476,6 @@ dir = 1 }, /area/mainship/hallways/hangar) -"vYr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/mainship/sterile/side{ - dir = 8 - }, -/area/mainship/medical/lower_medical) "vYN" = ( /obj/structure/bed/chair/office/dark, /obj/effect/landmark/start/job/mechpilot, @@ -26276,6 +26523,13 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) +"wbX" = ( +/obj/machinery/door/firedoor/mainship{ + dir = 2 + }, +/obj/machinery/vending/MarineMed, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical/chemistry) "wco" = ( /obj/structure/window/framed/mainship/white, /obj/machinery/door/firedoor/mainship, @@ -26323,7 +26577,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/machinery/firealarm{ +/obj/machinery/door_control/mainship/ammo{ + id = "ammo1"; + name = "Dropship Armament Storage"; dir = 4 }, /turf/open/floor/mainship/black{ @@ -26377,6 +26633,17 @@ }, /turf/open/floor/plating, /area/mainship/medical/upper_medical) +"wfL" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/mainship/hallways/repair_bay) "wfZ" = ( /obj/machinery/light/mainship{ dir = 8 @@ -26399,15 +26666,6 @@ /obj/effect/landmark/start/latejoin, /turf/open/floor/mainship/black, /area/mainship/living/cryo_cells) -"wgU" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/turf/open/floor/mainship/floor, -/area/mainship/hallways/hangar) "whn" = ( /obj/structure/bed/chair/sofa/left, /turf/open/floor/wood, @@ -26452,7 +26710,6 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/obj/structure/cable, /turf/open/floor/wood, /area/mainship/living/pilotbunks) "wjW" = ( @@ -26475,6 +26732,7 @@ /area/mainship/shipboard/brig_cells) "wkm" = ( /obj/structure/table/mainship/nometal, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/mainship/orange{ dir = 8 }, @@ -26482,9 +26740,23 @@ "wku" = ( /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/morgue) +"wkH" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/machinery/landinglight/alamo{ + dir = 8; + pixel_x = 4 + }, +/obj/machinery/light/floor{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "wkQ" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 + dir = 4; + pixel_x = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -26599,6 +26871,21 @@ /obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) +"woY" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/mainship/hallways/repair_bay) "woZ" = ( /obj/structure/orbital_cannon, /obj/effect/turf_decal/warning_stripes/thin, @@ -26621,7 +26908,7 @@ dir = 1 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "wqy" = ( /obj/machinery/power/apc/mainship{ dir = 4 @@ -26717,6 +27004,15 @@ dir = 5 }, /area/mainship/command/cic) +"wvI" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/camera/autoname/mainship{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "wvL" = ( /obj/machinery/light/mainship{ dir = 1 @@ -26751,18 +27047,18 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 }, -/obj/machinery/holopad, /obj/machinery/landinglight/alamo{ dir = 8; pixel_x = 4 }, +/obj/machinery/holopad, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "wxi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "wyh" = ( /obj/structure/table/mainship/nometal, /obj/item/clipboard{ @@ -26845,7 +27141,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "wAO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -27010,7 +27306,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "wGE" = ( /obj/machinery/power/apc/mainship, /obj/structure/cable, @@ -27050,7 +27346,7 @@ /turf/open/floor/mainship/sterile/side{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "wIA" = ( /obj/machinery/door_control/old/ai{ id = "cl_shutters"; @@ -27128,8 +27424,14 @@ "wLJ" = ( /obj/machinery/door/poddoor/mainship/open/cic, /obj/machinery/door/firedoor/mainship, -/turf/open/floor/mainship/black, +/turf/open/floor/mainship/stripesquare, /area/mainship/hallways/port_hallway) +"wLQ" = ( +/obj/machinery/sleeper{ + dir = 2 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "wLX" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/mainship/black{ @@ -27205,10 +27507,8 @@ /obj/machinery/bodyscanner{ dir = 8 }, -/turf/open/floor/mainship/sterile/side{ - dir = 1 - }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "wOW" = ( /obj/machinery/firealarm{ dir = 4 @@ -27307,7 +27607,7 @@ name = "Research Wing" }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "wUV" = ( /obj/machinery/door/airlock/multi_tile/mainship/medidoor/medbay, /obj/structure/cable, @@ -27360,6 +27660,15 @@ /turf/open/floor/plating, /area/mainship/hull/starboard_hull) "wXM" = ( +/obj/structure/table/mainship/nometal, +/obj/machinery/reagentgrinder, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/stack/sheet/mineral/phoron{ + amount = 4; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/bluespace, /turf/open/floor/mainship/sterile/side{ dir = 8 }, @@ -27402,6 +27711,10 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/port_hull) "xaX" = ( +/obj/docking_port/stationary/marine_dropship/crash_target, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, /turf/open/floor/mainship/black/corner, /area/mainship/squads/general) "xbH" = ( @@ -27432,6 +27745,20 @@ dir = 8 }, /area/mainship/living/evacuation) +"xdI" = ( +/obj/machinery/light/mainship{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/mainship/command/cic) +"xej" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/mainship/hallways/repair_bay) "xem" = ( /obj/structure/supply_drop, /turf/open/floor/plating, @@ -27570,10 +27897,12 @@ /area/mainship/living/cryo_cells) "xjc" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/mainship/sterile/side{ - dir = 1 +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/firedoor/mainship{ + dir = 2 }, -/area/mainship/medical/lower_medical) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "xjw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -27628,6 +27957,10 @@ dir = 8 }, /area/mainship/hallways/hangar) +"xlJ" = ( +/obj/structure/cable, +/turf/open/floor/mainship/sterile/corner, +/area/mainship/medical) "xlZ" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/mainship/floor, @@ -27690,7 +28023,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "xqr" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating, @@ -27764,11 +28097,15 @@ /area/mainship/engineering/engineering_workshop) "xus" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/junction/flipped{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/chemistry) "xuI" = ( @@ -27836,7 +28173,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/sterile/side, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "xyf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27849,13 +28186,16 @@ dir = 10 }, /area/mainship/hallways/port_hallway) +"xyg" = ( +/turf/open/floor/mainship/empty, +/area/mainship/hallways/repair_bay) "xyx" = ( /obj/structure/window/framed/mainship/white, /obj/machinery/door/firedoor/mainship{ dir = 2 }, /turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "xyG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -27880,10 +28220,13 @@ }, /area/mainship/squads/general) "xzR" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, /turf/open/floor/mainship/black/corner{ dir = 4 }, -/area/mainship/living/pilotbunks) +/area/mainship/hallways/repair_bay) "xzX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -27908,6 +28251,11 @@ /obj/effect/ai_node, /turf/open/floor/mainship/floor, /area/mainship/living/numbertwobunks) +"xAw" = ( +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/mainship/hallways/repair_bay) "xAS" = ( /obj/structure/cable, /obj/machinery/camera/autoname/mainship{ @@ -27999,14 +28347,13 @@ /area/mainship/living/numbertwobunks) "xEN" = ( /obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 + dir = 1; + pixel_y = 1 }, -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ +/turf/open/floor/mainship/sterile/side{ dir = 4 }, -/turf/open/floor/mainship/sterile/dark, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "xES" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/camera/autoname/mainship, @@ -28140,30 +28487,6 @@ /obj/structure/ship_ammo/cas/minirocket, /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) -"xKo" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/light/mainship{ - dir = 8 - }, -/turf/open/floor/mainship/orange/corner{ - dir = 2 - }, -/area/mainship/living/tankerbunks) "xKp" = ( /obj/machinery/door/airlock/mainship/marine/general/smart{ dir = 2 @@ -28184,6 +28507,15 @@ dir = 6 }, /area/mainship/living/grunt_rnr) +"xLv" = ( +/obj/structure/sign/securearea/firingrange{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/mainship/squads/general) "xLV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -28238,24 +28570,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating/plating_catwalk, /area/mainship/engineering/engine_core) -"xON" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/mainship{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/mainship/black{ - dir = 4 - }, -/area/mainship/living/pilotbunks) "xPi" = ( /obj/machinery/researchcomp, /turf/open/floor/mainship/orange{ @@ -28357,7 +28671,7 @@ "xSK" = ( /obj/machinery/loadout_vendor, /turf/open/floor/mainship/sterile, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "xSN" = ( /obj/structure/table/mainship/nometal, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -28437,6 +28751,17 @@ /obj/structure/cable, /turf/open/shuttle/escapepod/four, /area/mainship/command/self_destruct) +"xVU" = ( +/obj/structure/window/framed/mainship/white, +/obj/machinery/door/poddoor/shutters/mainship/open/medical{ + dir = 8 + }, +/obj/effect/soundplayer, +/obj/machinery/door/firedoor/mainship{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "xVY" = ( /obj/structure/rack/nometal, /obj/item/stack/sheet/cloth, @@ -28482,7 +28807,7 @@ /turf/open/floor/mainship/sterile/corner{ dir = 1 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "xZL" = ( /obj/machinery/light/mainship{ dir = 4 @@ -28524,6 +28849,12 @@ }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/lounge) +"ybs" = ( +/obj/machinery/light/mainship, +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/mainship/hallways/hangar) "ybG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -28565,10 +28896,17 @@ /area/mainship/living/evacuation) "ycX" = ( /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, /turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "ydk" = ( /obj/structure/cable, /turf/open/floor/mainship/red, @@ -28657,6 +28995,24 @@ }, /turf/open/floor/wood, /area/mainship/command/corporateliaison) +"ygb" = ( +/obj/machinery/computer/body_scanconsole{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/medical) "ygQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -28688,28 +29044,13 @@ /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/mainship/black, /area/mainship/command/cic) -"yit" = ( -/obj/structure/cable, -/turf/open/floor/mainship/sterile/side{ - dir = 1 - }, -/area/mainship/medical/lower_medical) -"yiL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/holopad, +"yio" = ( +/obj/machinery/cic_maptable, +/obj/structure/table/mainship/nometal, /turf/open/floor/mainship/sterile/side{ dir = 8 }, -/area/mainship/medical/lower_medical) +/area/mainship/medical) "yiV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -28722,11 +29063,12 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/starboard_hull) "yja" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/firealarm, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4; + pixel_x = 1 + }, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) "yjh" = ( @@ -28735,6 +29077,17 @@ dir = 4 }, /area/mainship/squads/general) +"yju" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 1; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/ai_node, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/medical) "yjy" = ( /obj/machinery/firealarm{ dir = 8 @@ -30973,17 +31326,17 @@ jjn wDf ugu pqH +eaj pqH pqH pqH pqH +eaj pqH pqH pqH pqH -pqH -pqH -pqH +eaj hbj dDc xDs @@ -31789,17 +32142,17 @@ drm iHx tou kGs +ajA kGs kGs kGs kGs +ajA kGs kGs kGs kGs -kGs -kGs -kGs +ajA vll dDc oRT @@ -32506,7 +32859,7 @@ lKv dnA bVe lAA -alg +ajy alg hfg lCI @@ -32784,7 +33137,7 @@ qTV qTV qTV qTV -mRH +odb nnj jBO hSS @@ -33216,7 +33569,7 @@ eNi ktN kNP mot -xxH +anI snB mGS rKc @@ -33312,11 +33665,11 @@ pyh rfi eLi aZO -fKq -lYh +rEk +rEk ptU xyx -eRq +nzR rYd ptU xyx @@ -33412,7 +33765,7 @@ ptk iga mBI qrp -ycX +vdm ycX pAn lUM @@ -33618,11 +33971,11 @@ mDs uWE ffA lYh -dor +rEk iRB -xyx +ioR oea -iKx +xyx tzN ppJ iBD @@ -33719,15 +34072,15 @@ ksC mDs xSK xEN -lYh -dor -mzL -xyx +gYz +qSo +rEk +rEk fLo -qYt +xyx ewC -tvc -iBD +sPi +hAu tPr nHX ptU @@ -33818,17 +34171,17 @@ rgp wAO vqS jYQ -cXX +mhC cXX oto kpp jzJ -nUB -xyx -mZk +xxH +buY +drL eRq drL -ptU +yju hoh tPr cVu @@ -33920,17 +34273,17 @@ uge foS erp oKH -ewC -txn -lYh -lYh -lOk -nlA -xyx +lNM +nzR +nzR +crd +ptU +ptU +hyB jlj -eRq +xyx lqi -ptU +tSL gjc tPr gwG @@ -34023,11 +34376,11 @@ bAr bAr hqL qSo -kjk -lYh +nzR +nzR oyj -uPS -nUb +ptU +ptU nDi nUb xjc @@ -34124,21 +34477,21 @@ nAC oYS mIf vOG -lYh -lYh -lYh +rEk +rEk rpR -yiL +djb tvc -xyx +rEk +rEk nRC -vAD -qSo +xyx +cxs ovG tBa tPr mzU -ptU +sPf nLu wco wco @@ -34226,17 +34579,17 @@ fha qVc mIf obq -ewC -doe -lYh +rEk +rpR +oQU lSZ oBS -iGv -xyx +tvc +rEk rEk uaV nzR -jPb +lNM rXd tPr fgS @@ -34314,9 +34667,9 @@ rbz lRt lRt lRt -fuI -qdl -uEB +lRt +lRt +lRt rbz lRt tuN @@ -34327,20 +34680,20 @@ xkw sMT yeb kMa -pUe +upn upn tqM nNN cSO pOs -jVH -tPr +ptU +fmv +twA +fvv +sAF +kIo +oRm tPr -vko -vko -vko -vko -vko mzU ptU cwB @@ -34430,19 +34783,19 @@ eBM xkd mIf vaj -lYh +rEk mCi -lYh -rpR +bUm +gHZ jwi -tvc +jJe jlQ rJs -waP +rxK qkF gva skN -vko +tPr mzU ptU ebP @@ -34523,7 +34876,7 @@ rik rik rik bdp -iOW +cVq sdU fRR lra @@ -34532,18 +34885,18 @@ sub sub lra amv -qSo qWR -lYh -rpR -dBJ -tvc -lYh +qWR +xlJ +ygb +jJe rEk -waP -hDK -jmw -sAs +jlQ +wLQ +vko +vko +vko +vko vko fGL hOZ @@ -34629,20 +34982,20 @@ iOW sdU fRR gUM -lYh +nzR lDr -lYh -jlQ +rEk +pBU dor -lYh -lYh -lYh +lrt +nzR +nzR qHy -vYr -tvc -uaV +ptU +ptU +aEj iQJ -waP +wbX scE jyX vUV @@ -34731,16 +35084,16 @@ iOW nqJ fRR vzI -lYh -lYh -rpR -rpR -paT -rpR -rpR -rpR +nzR +rEk +rEk +bfz +dor +nfv +nzR +nzR uoD -gLB +lQU lQU kJg txc @@ -34777,9 +35130,9 @@ kQX kQX fyL lfY -bLP -hFd -vQh +ufS +tSO +qRH oaL pHG dGV @@ -34839,16 +35192,16 @@ wOI epc ltL gMW -tgD -yit +nzR +nzR gzY bfz -vwt +ptU erU sHa jOe dKd -dKd +ksS dKd dKd bOR @@ -34881,7 +35234,7 @@ fyL wmf puU etL -veo +bUi jou pHG fld @@ -34935,14 +35288,14 @@ iOW xqh vjQ gte -sZo +tlm sZo rlz aeb gey aYg -lbs -rar +qYN +grh cnp grh qYN @@ -34983,7 +35336,7 @@ fyL wmf hEO dGV -veo +bUi efm xha xDu @@ -35038,21 +35391,21 @@ vtz fRR vzI aJm -lYh +rEk qvk mkd -lYh -lYh +tHO +dRQ niq -tLx +yio enc sLH -pso +sgg tLx -tbu +rEk waP vdS -cPo +hDK vuj hVT eRb @@ -35085,7 +35438,7 @@ rZc rwL uYs dGV -hYZ +bUi ecY ecY ncu @@ -35135,21 +35488,21 @@ uST uST uST czi -iOW +cVq vtz kEL eGk -tPr rIV +vjh vEN -hlC +vdG rIV aNg -iQX -hlC -hlC +xVU +vdG tPr -hlC +gcy +fqh hlC iQX vko @@ -35246,13 +35599,13 @@ tEM ukX kkX tEM -tEM +qlv tEM vAC -tEM kkX tEM tEM +hhz tEM uGN vAC @@ -35330,7 +35683,7 @@ vlB fjG rto iyA -tNu +adB fHx olD olD @@ -35385,7 +35738,7 @@ kja kse sOI eff -gfy +bhv gfy btY wmf @@ -35432,8 +35785,8 @@ vlB vlB kBf hIO -mFV -bMK +hYD +hjH hIO dSy fcW @@ -35534,8 +35887,8 @@ vkb vlB sgF hIO -mFV -bMK +hYD +hjH hIO ehy dxv @@ -35636,8 +35989,8 @@ vkb vlB rIa hIO -mFV -bMK +hYD +hjH hIO dmG htw @@ -35738,8 +36091,8 @@ vkb vlB mwK hIO -mFV -dqc +hYD +dbP nlT mQp qtB @@ -35747,7 +36100,7 @@ mFV mFV mFV mFV -sfI +oUe mPK mFV oUe @@ -35781,7 +36134,7 @@ eJg qsW kkD cuo -kcA +ukl kcA xim kcA @@ -35841,29 +36194,29 @@ vlB wGG hIO uKE -pkv -bZV bZV +tXW bZV bZV bZV bZV +tXW bZV -qaV +caM ckM ckM caM dzC bZV +tXW bZV bZV bZV bZV -bZV -bZV -bZV +tXW bZV exE +mFV hYD mFV tXR @@ -35893,7 +36246,7 @@ tnk hcM pLi jAG -iUN +wLJ lGo wLJ fVh @@ -35942,8 +36295,7 @@ vkb qDO rIa wQg -etU -jiV +gmO mGC mGC krc @@ -35966,6 +36318,7 @@ mGC amV xXI xFW +mFV mel tys oUO @@ -36044,11 +36397,10 @@ vkb qDO rIa wQg -etU vAL mGC -mGC -rki +jfL +jcy lNQ mGC mGC @@ -36068,13 +36420,14 @@ mGC pqL mGC xFW +mFV jtb cpj +nwm cpj cpj cpj -cpj -cpj +nwm gjT mUv coX @@ -36146,7 +36499,6 @@ vkb qDO sgF wQg -etU vAL rik rik @@ -36170,6 +36522,7 @@ mGC aLj mGC xFW +mFV nqZ cVO dil @@ -36248,7 +36601,6 @@ vkb qDO rIa wQg -etU vAL mGC mGC @@ -36271,7 +36623,8 @@ mGC mGC mGC mGC -ibc +miC +mFV jtb vRo aJZ @@ -36314,7 +36667,7 @@ lYI vBU gZM fVh -aaV +xdI wGQ yih oSy @@ -36350,7 +36703,6 @@ vkb qDO rIa wQg -etU vAL mGC mGC @@ -36374,6 +36726,7 @@ mGC jDS uST aHj +mFV jtb cWr aJZ @@ -36453,7 +36806,6 @@ gSm twS wQg tYy -vAL mGC mGC mGC @@ -36476,6 +36828,7 @@ mGC fjj mGC aHj +mFV nqZ vRo aJZ @@ -36554,7 +36907,6 @@ vkb gSm twS wQg -etU vAL mGC mGC @@ -36578,6 +36930,7 @@ mGC xYf rik aHj +mFV jtb cWr aJZ @@ -36656,7 +37009,6 @@ vkb gSm twS wQg -etU vAL mGC mGC @@ -36679,7 +37031,8 @@ mGC mGC mGC mGC -ibc +miC +mFV jtb vRo aJZ @@ -36758,7 +37111,6 @@ vkb gSm tHj wQg -etU vAL uST uST @@ -36782,6 +37134,7 @@ mGC axY mGC xFW +mFV nqZ qQu hHi @@ -36860,11 +37213,10 @@ vkb gSm twS wQg -etU vAL mGC -mGC -rki +jfL +jcy lNQ mGC mGC @@ -36884,13 +37236,14 @@ mGC jOw mGC xFW +mFV jtb cpj -cpj +nwm cpj cpj eJB -cpj +nwm fEb xlZ coX @@ -36962,8 +37315,7 @@ vkb gSm twS wQg -etU -vAL +tYy mGC mGC mtP @@ -36986,6 +37338,7 @@ mGC wmc cWg xFW +mFV ukX tEM aVR @@ -37064,30 +37417,30 @@ vkb eju mMX hIO -eos -lGj -tSl +fiz tSl +jcb uBv +vqY fun fun +wkH fun -fun -eLX +thi hgw hgw thi wwV fun +wkH fun fun fun fun -fun -fun -fun +wkH fun qtB +mFV hYD mFV reF @@ -37117,7 +37470,7 @@ pLi pLi pLi jAG -tqJ +dwf bnh dwf fVh @@ -37166,8 +37519,8 @@ vkb eju veE hIO -hjH -hYD +bMK +mFV mFV wqC mMV @@ -37175,7 +37528,7 @@ mFV eFH mFV mFV -ldR +oUe mPK mFV tEM @@ -37196,7 +37549,7 @@ lKr tEM jDI iaJ -dkl +qfK iGV aQr aQr @@ -37301,7 +37654,7 @@ iaJ fIq wKd oKw -iwn +oab gqm gLl mrT @@ -37371,30 +37724,30 @@ eju iwz hIO mHO -mFV +mAq mFV bOo mMV mFV vlZ -mFV +mAq ibO oUe vtz qEX nHc -vSg +tEt tys kpw tys -sWV +oUO uGv -tys -tys +nHc +vSg aGN tys tys -rbo +nHc lWW eUr sdU @@ -37486,16 +37839,16 @@ xPo cVV mrs eiz -vFu +lPW eVm -vFu +lPW +lPW +lPW eiz -mrs -koG -pTZ -tNS -pTZ -tFM +eiz +vFz +bjs +bjs eiz mrs nnu @@ -37525,7 +37878,7 @@ bmT bmT bmT hDs -dNX +nnu evZ uwN uwN @@ -37590,15 +37943,15 @@ eiz mvP jIi sMc -lLa -hiw -xKo -lLa -lLa -fZA -rhO -rhO -vXb +roL +roL +roL +fNk +qHE +dCr +xej +xej +wvI eOG dNX eBS @@ -37676,8 +38029,8 @@ eju wPp dAd hIO -vCH -jGj +daV +fYS lAQ xsN hjH @@ -37689,18 +38042,18 @@ oUe vtz van eiz -jix -iQF -iQF -iQF -ppr -sQo -iQF -iQF -iQF -iQF -iQF -pAm +gYD +xyg +xyg +xyg +xyg +xyg +hYl +cPv +lEn +lEn +lEn +qvT eOG dNX kDg @@ -37715,7 +38068,7 @@ gwN plQ plQ ulv -rHg +plQ plQ pgU plQ @@ -37778,8 +38131,8 @@ eju pLM dAd hIO -vnY -jGj +kAs +qkU nQd hOX xlh @@ -37792,17 +38145,17 @@ vtz dBe eiz cDb -mmP -bzN -mmP -juZ -gGg -iQF -iQF -iQF -iQF -iQF -iKc +xyg +xyg +xyg +xyg +xyg +cjk +cPv +mpp +uCq +pce +aiK eiz tJr aRH @@ -37817,7 +38170,7 @@ eQh eQh eQh cxb -ank +lqg xYV iyq lqg @@ -37879,9 +38232,9 @@ vkb eju cWR qrL -ucN -wgU -wgU +hIO +daV +nir ovg xsN hjH @@ -37894,17 +38247,17 @@ vtz fRR eiz qIh +xyg +xyg rOU -iQF -rOU -jcn -klv -iQF -iQF -iQF -iQF -iQF -hAZ +xyg +xyg +woY +tTd +lEn +eUE +lEn +aDg oJx nnu kDg @@ -37919,7 +38272,7 @@ fgW bRv eQh kMc -rgl +eRH fft cTh mJI @@ -37982,9 +38335,9 @@ eju fRf twS hIO -daV -fYS -mMV +kAs +cZF +ska xsN dbP mQp @@ -37996,17 +38349,17 @@ vtz fRR eiz vbh -rqS -iQF -iQF -jDq -jdq -iQF -iQF -iQF -iQF -iQF -rMD +xyg +xyg +xyg +xyg +xyg +kvC +uCj +mpp +uCq +lEn +aiK eiz wIF wNT @@ -38051,7 +38404,7 @@ skq mlK mcL dNm -cTr +dCk uML qIC vkb @@ -38084,9 +38437,9 @@ eju frL sbf hIO -kAs -qkU -mMV +vEk +sLf +ska ttU hul hul @@ -38098,17 +38451,17 @@ lLj fRR eiz gqj -iQF -iQF -kXP -lgX -flT -iQF -iQF -iQF -iQF -iQF -pAm +xyg +xyg +xyg +xyg +xyg +ass +uCj +lEn +lEn +srk +doQ eOG dNX kDg @@ -38186,9 +38539,9 @@ eju iFH twS hIO -daV -nir -mMV +kAs +vGf +ska lqe rTR fNw @@ -38201,15 +38554,15 @@ fRR lwX jKl fDq -hYj -fDq -trC -fIz -pjB -prS -kjW -iNp -fDq +kQT +kQT +pdp +kQT +nRb +dkg +sMZ +sMZ +hcy rpl eOG dNX @@ -38288,10 +38641,10 @@ eju hAy lbf lry -kAs -cZF -mMV -lqe +gCk +gCk +vTo +iLr mFV noe pef @@ -38301,17 +38654,17 @@ oUe khM kEL eiz -pya -cGQ -pya -cGQ -pya -pya -pya -cGQ +aDU +lEn +srk +lEn +peR +hNH +anm +iAt dKZ cGQ -pya +tHW pya mrs nnu @@ -38390,8 +38743,8 @@ eju rIp twS hIO -vEk -sLf +vCH +jGj hnt hfk uJJ @@ -38404,15 +38757,15 @@ khM fRR cGx dGq -riy -fhU -riy -riy -fhU -riy -riy -xON -riy +wfL +hMs +hMs +hMs +wfL +wfL +hiE +hMs +hMs riy xzR cGx @@ -38442,9 +38795,9 @@ otc rvR rvR gVu -pJk -pJk -pJk +irn +irn +irn pJk gVu bmT @@ -38492,8 +38845,8 @@ eju wPp twS hIO -kAs -vGf +vnY +jGj mMV lqe mFV @@ -38506,12 +38859,12 @@ nYJ rMY bXD tuR -bcP -bcP -bcP -bcP -bcP -bcP +fjM +fjM +fjM +ekN +fjM +fjM bcP fwB pHO @@ -38533,7 +38886,7 @@ eQh fWX kTQ qKH -fJH +nXM bbe ivy vWo @@ -38541,7 +38894,7 @@ cON rGw pWZ gmm -rGw +xLv tVF slY nQl @@ -38595,7 +38948,7 @@ jTF sai hIO hZO -mQp +jKp qtB lqe mFV @@ -38608,16 +38961,16 @@ wXN fRR cGx agU -ggB -ggB +xAw +xAw aHP vpu -ggB -ggB -ggB +xAw +xAw +xAw vpu loy -ggB +xAw lWS cGx dNX @@ -38643,7 +38996,7 @@ ivy ivy jfJ lqg -ivy +lqg ivy ivy ivy @@ -38708,7 +39061,7 @@ ssO cVV xPo cVV -lXb +mrs mNE mNE mNE @@ -38740,12 +39093,12 @@ qUJ lfu ygU ivy +lbd xJg xTJ -urw ejm uxQ -lbd +hRJ xJg xTJ urw @@ -38799,7 +39152,7 @@ hIO vCN vAC kkX -tEM +fnH tEM fxU tEM @@ -38810,11 +39163,11 @@ wdF vuE eyw edm +uGN tEM tEM tEM -tEM -psG +ybs xMD jAq hFJ @@ -38842,9 +39195,9 @@ sqT pYB lbd ivy +lbd xJg xTJ -urw ejm hzX lbd @@ -38920,7 +39273,7 @@ sPI kOp elP elP -gkl +elP ajx cnm xIf @@ -38944,11 +39297,11 @@ fXr iSG lbp ivy +lbd iEb rrI -lqg -ejm -pNg +uYz +hzX lbd lqg rrI @@ -39019,8 +39372,8 @@ mGC mGC hMW van -xMD -uBJ +nuy +tvG bug wjh cUd @@ -39046,9 +39399,9 @@ sqT pYB lbd ivy +lbd xJg xTJ -urw ejm hzX lbd @@ -39120,8 +39473,8 @@ rik rik bdp hMW -kEL -xMD +fRR +nuy tvG bug wjh @@ -39148,12 +39501,12 @@ pXC uOY pHy ivy +lbd xJg xTJ -urw ejm -rrI -lbd +uxQ +hRJ xJg xTJ urw @@ -39223,10 +39576,10 @@ mGC fjj hMW fRR -xMD -cVM -pLL -pLL +nJj +kSb +kSb +kSb sPQ hfV pqA @@ -39251,11 +39604,11 @@ kdg pnK vKP pnK -xQU +pnK pnK gep ucc -lFh +tfC lFh tIV pnK @@ -39275,7 +39628,7 @@ skq mlK mcL dNm -oNu +dCk uML qIC vkb @@ -39324,14 +39677,14 @@ mGC mGC fjj hMW -fRR +kEL xMD ndJ iod ggB bsg ruq -pxu +hhE nwd xMD nnu @@ -39449,7 +39802,7 @@ lJs lbd xKp rTb -oUI +sxo xaX pwD gdu @@ -39528,15 +39881,15 @@ mGC mGC fjj hMW -kEL +fRR xMD vIE lDB kSb xMD kSb -lDB -vIE +jDm +aiC xMD dNX pUk @@ -39733,13 +40086,13 @@ mGC fjj hMW fRR -hHI +xMD oBe kSb pfy xMD kSb -kSb +vOb mPm xMD dNX @@ -40344,7 +40697,7 @@ cUM ssO oUe vtz -fRR +kEL boV yee jWs @@ -40570,7 +40923,7 @@ jkK xEA cdO qlT -vPR +aYf iXT wQF jAF @@ -41041,12 +41394,12 @@ vkb vkb vkb eju -lkL -epM -snq +iwz +hIO +hVs snq nYE -mnH +qIX khR nPy nPy @@ -41173,12 +41526,12 @@ dJR aKU eac eBT +pVp eBT eBT eBT eBT -eBT -eBT +pVp eBT eBT eBT @@ -41989,17 +42342,17 @@ mOR wvW cVA oFs +dmT oFs oFs oFs oFs -oFs -oFs +dmT iME oFs oFs oFs -iME +pvM uvb rQd mSu diff --git a/_maps/map_files/Campaign maps/nt_base/nt_base.dmm b/_maps/map_files/Campaign maps/nt_base/nt_base.dmm index 81d55444f1649..e197a4d34da13 100644 --- a/_maps/map_files/Campaign maps/nt_base/nt_base.dmm +++ b/_maps/map_files/Campaign maps/nt_base/nt_base.dmm @@ -474,11 +474,6 @@ dir = 4 }, /area/gelida/indoors/a_block/dorms) -"ass" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/patrol_point/som/som_22, -/turf/open/floor/prison/whitegreenfull2, -/area/gelida/cavestructuretwo) "ast" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, @@ -5668,10 +5663,6 @@ }, /turf/open/floor/carpet, /area/gelida/indoors/a_block/executive) -"efd" = ( -/obj/effect/landmark/patrol_point/som/som_24, -/turf/open/floor/prison, -/area/gelida/cavestructuretwo) "efi" = ( /turf/closed/shuttle/dropship2/fins{ dir = 4 @@ -7824,9 +7815,6 @@ /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 - }, /turf/open/floor/mainship/stripesquare, /area/gelida/indoors/a_block/security) "fNo" = ( @@ -9740,11 +9728,6 @@ }, /turf/open/floor/prison, /area/gelida/indoors/a_block/dorms) -"hix" = ( -/obj/effect/ai_node, -/obj/effect/landmark/patrol_point/som/som_14, -/turf/open/floor/plating/ground/ice, -/area/gelida/caves/east_caves) "hjf" = ( /obj/machinery/light{ dir = 1 @@ -10156,6 +10139,10 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk/prison, /area/gelida/indoors/b_block/bridge) +"hyA" = ( +/obj/effect/landmark/patrol_point/som/som_24, +/turf/open/floor/plating/ground/snow/layer1, +/area/gelida/outdoors/nw_rockies) "hze" = ( /obj/structure/inflatable/wall, /turf/open/shuttle/dropship/eight, @@ -10748,6 +10735,10 @@ /obj/machinery/light, /turf/open/floor/prison, /area/gelida/cavestructuretwo) +"hWx" = ( +/obj/effect/landmark/patrol_point/som/som_21, +/turf/open/floor/plating/ground/snow/layer0, +/area/gelida/outdoors/nw_rockies) "hWC" = ( /obj/machinery/atmospherics/pipe/manifold4w/green/hidden, /obj/effect/ai_node, @@ -15734,6 +15725,10 @@ }, /turf/closed/mineral/smooth/snowrock, /area/gelida/outdoors/rock) +"lGa" = ( +/obj/effect/landmark/patrol_point/som/som_22, +/turf/open/floor/plating/ground/snow/layer0, +/area/gelida/outdoors/nw_rockies) "lHs" = ( /obj/effect/turf_decal/warning_stripes/thick{ dir = 4 @@ -22166,6 +22161,10 @@ "qin" = ( /turf/closed/shuttle/dropship2/finleft, /area/gelida/landing_zone_forecon/UD6_Typhoon) +"qja" = ( +/obj/effect/landmark/patrol_point/som/som_14, +/turf/open/floor/plating/ground/ice, +/area/gelida/caves/east_caves) "qje" = ( /obj/structure/table/mainship, /obj/item/reagent_containers/food/snacks/sliceable/pastries/plaincake{ @@ -25213,6 +25212,10 @@ }, /turf/open/floor/prison, /area/gelida/indoors/c_block/cargo) +"stm" = ( +/obj/effect/landmark/patrol_point/som/som_23, +/turf/open/floor/plating/ground/snow/layer0, +/area/gelida/outdoors/colony_streets/north_west_street) "stq" = ( /obj/machinery/light, /turf/open/floor/prison/whitepurple/full{ @@ -30310,10 +30313,6 @@ "wfV" = ( /turf/open/floor/prison/darkbrown/full, /area/gelida/indoors/c_block/cargo) -"wgu" = ( -/obj/effect/landmark/patrol_point/som/som_21, -/turf/open/floor/prison, -/area/gelida/cavestructuretwo) "wgZ" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -31902,10 +31901,6 @@ /obj/structure/closet/crate, /turf/open/floor/prison/cleanmarked, /area/gelida/indoors/lone_buildings/storage_blocks) -"xuf" = ( -/obj/effect/landmark/patrol_point/som/som_23, -/turf/open/floor/prison, -/area/gelida/cavestructuretwo) "xuW" = ( /obj/machinery/computer/intel_computer{ pixel_y = 13 @@ -35244,7 +35239,7 @@ cgS cgS bOD wJU -wJU +hWx xKB uew uew @@ -35468,7 +35463,7 @@ wJU wJU wJU wJU -uew +stm bPy iQQ kgz @@ -36351,7 +36346,7 @@ xjB rfq qHK cJC -wJU +lGa wJU dzU uxC @@ -37018,7 +37013,7 @@ cgS cgS cgS cgS -tWN +hyA wJU wJU wJU @@ -37862,11 +37857,11 @@ yiB yiB xod cZX -xuf +upW cZX mSM upW -wgu +upW fTM yiB yiB @@ -39420,7 +39415,7 @@ upW eWM sZZ upW -efd +upW upW sWh yiB @@ -39638,7 +39633,7 @@ sWh cLZ kuB dkT -ass +awQ sWh awQ awQ @@ -66743,7 +66738,7 @@ cgS vBx vBx vBx -vBx +cLI cgS cgS cgS @@ -66961,7 +66956,7 @@ vBx vBx cgS cgS -vBx +csv vBx vBx vBx @@ -67838,7 +67833,7 @@ cgS cgS cgS cgS -cLI +vBx vBx vBx vBx @@ -67849,12 +67844,12 @@ vBx cgS cgS vBx +hgN vBx vBx vBx vBx -vBx -vBx +qja cgS cgS cgS @@ -68278,7 +68273,7 @@ cgS cgS cgS cgS -csv +vBx uLt vBx vBx @@ -68288,7 +68283,7 @@ vBx vBx qIR vBx -hix +uLt cgS cgS cgS @@ -69392,7 +69387,7 @@ vBx vBx vBx vBx -hgN +vBx cgS cgS cgS diff --git a/_maps/map_files/Campaign maps/som_raid_base/som_raiding_base.dmm b/_maps/map_files/Campaign maps/som_raid_base/som_raiding_base.dmm index 798084c506985..e47048cb60ab8 100644 --- a/_maps/map_files/Campaign maps/som_raid_base/som_raiding_base.dmm +++ b/_maps/map_files/Campaign maps/som_raid_base/som_raiding_base.dmm @@ -442,10 +442,10 @@ /turf/open/floor/tile/dark, /area/campaign/som_raiding/outpost/security/cargo_post) "cA" = ( -/obj/structure/prop/vehicle/crane{ +/obj/structure/cable, +/obj/structure/prop/vehicle/crane/destructible{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/plating/ground/concrete, /area/campaign/som_raiding/outpost/req/north) "cB" = ( @@ -1388,6 +1388,7 @@ "hE" = ( /obj/machinery/power/smes/buildable/empty, /obj/structure/cable, +/obj/effect/turf_decal/bot, /turf/open/floor/tile/dark/yellow2{ dir = 5 }, @@ -1510,6 +1511,10 @@ /obj/machinery/light, /turf/open/floor/mainship/red, /area/campaign/som_raiding/outpost/living/briefing) +"im" = ( +/obj/structure/flora/drought/shroom/fire, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "in" = ( /turf/open/floor/tile/dark/blue2/corner{ dir = 4 @@ -1546,6 +1551,10 @@ /obj/effect/landmark/mob_spawner/farwa, /turf/open/ground/grass/weedable, /area/campaign/som_raiding/ground/jungle/north) +"iw" = ( +/obj/structure/flora/drought/shroom/gut, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "iy" = ( /obj/structure/prop/vehicle/truck/truckcargo/destructible{ dir = 1 @@ -1799,6 +1808,10 @@ dir = 1 }, /area/campaign/som_raiding/ground/jungle/north) +"jF" = ( +/obj/structure/flora/drought/shroom/lure_weed, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "jI" = ( /obj/effect/turf_decal/sandedge/corner{ dir = 1 @@ -2385,6 +2398,9 @@ "mJ" = ( /turf/open/floor/mainship/sterile/dark, /area/campaign/som_raiding/outpost/medbay) +"mK" = ( +/turf/closed/mineral/smooth, +/area/campaign/som_raiding/cave/tunnel_west) "mN" = ( /obj/structure/table/black, /turf/open/floor/tile/dark/blue2{ @@ -2756,6 +2772,7 @@ "oK" = ( /obj/machinery/power/smes/buildable/empty, /obj/structure/cable, +/obj/effect/turf_decal/bot, /turf/open/floor/tile/dark/yellow2{ dir = 6 }, @@ -2814,6 +2831,10 @@ }, /turf/open/floor/mainship/mono, /area/campaign/som_raiding/outpost/maintenance) +"pa" = ( +/obj/structure/flora/drought/shroom/brain, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "pb" = ( /obj/structure/bed/bunkbed, /turf/open/floor/tile/dark/green2{ @@ -5364,6 +5385,12 @@ }, /turf/open/floor/tile/dark, /area/campaign/som_raiding/outpost/command/living) +"Dw" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/tile/dark/gray, +/area/campaign/som_raiding/outpost/req/qm) "Dy" = ( /obj/structure/cargo_container/nt{ dir = 4 @@ -5666,6 +5693,10 @@ /obj/structure/flora/drought/shroom, /turf/open/floor/plating/ground/mars/random/cave/darker, /area/campaign/som_raiding/cave/tunnel) +"EW" = ( +/obj/structure/mine_structure/wooden/support_wall, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/outpost/construction) "EY" = ( /turf/closed/wall/mainship/gray, /area/campaign/som_raiding/outpost/security/north_post) @@ -6122,6 +6153,10 @@ /obj/effect/turf_decal/box, /turf/open/floor/plating/ground/concrete, /area/campaign/som_raiding/outpost/req/north) +"Hz" = ( +/obj/structure/mine_structure/wooden/support_wall/beams, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/outpost/tunnel/west) "HA" = ( /obj/machinery/light/small{ dir = 4 @@ -7404,6 +7439,7 @@ "OI" = ( /obj/machinery/power/smes/buildable/empty, /obj/structure/cable, +/obj/effect/turf_decal/bot, /turf/open/floor/tile/dark/yellow2{ dir = 4 }, @@ -7457,6 +7493,10 @@ "OW" = ( /turf/closed/mineral/smooth, /area/campaign/som_raiding/cave) +"OX" = ( +/obj/structure/rock/variable/stalagmite, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "OY" = ( /obj/effect/spawner/random/engineering/extinguisher, /turf/open/floor/plating/ground/concrete, @@ -7516,6 +7556,10 @@ /obj/item/weapon/gun/rifle/som/standard, /turf/open/floor/tile/dark, /area/campaign/som_raiding/outpost/security) +"Pp" = ( +/obj/structure/mine_structure/wooden/support_wall/beams, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "Pr" = ( /turf/open/floor/tile/dark/green2/corner{ dir = 1 @@ -7704,6 +7748,9 @@ dir = 4 }, /area/campaign/som_raiding/outpost/command/north) +"Qo" = ( +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "Qq" = ( /obj/structure/table/black, /turf/open/floor/tile/dark/blue2{ @@ -8327,6 +8374,10 @@ /obj/structure/prop/brokenvendor/surplusarmor, /turf/open/floor/tile/dark, /area/campaign/som_raiding/outpost/security) +"TS" = ( +/obj/structure/girder, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/outpost/construction) "TT" = ( /obj/structure/cable, /turf/open/floor/tile/dark, @@ -9064,6 +9115,10 @@ /obj/structure/closet/crate/radiation, /turf/open/floor/plating/ground/concrete, /area/campaign/som_raiding/outpost/req/north) +"XJ" = ( +/obj/structure/mine_structure/wooden/support_wall, +/turf/open/floor/plating/ground/mars/random/cave/darker, +/area/campaign/som_raiding/cave/tunnel_west) "XK" = ( /obj/structure/cable, /turf/open/floor/tile/dark, @@ -14334,25 +14389,25 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK JW JW iv @@ -14486,25 +14541,25 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +Qo +Qo +mK +mK +mK +mK +Qo +Qo +Qo +Qo JW OG JW @@ -14638,25 +14693,25 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +Pp +Qo +Qo +Qo +Qo +Qo +Qo +Qo +Qo LQ JW JW @@ -14790,25 +14845,25 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +Qo +Qo +mK +mK JW JW JW @@ -14938,29 +14993,29 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +mK +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +jF +mK +mK +mK +mK Pc JW JW @@ -15090,29 +15145,29 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK Pc JW JW @@ -15242,31 +15297,31 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK JW yq JW @@ -15394,31 +15449,31 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK JW JW JW @@ -15546,31 +15601,31 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo +OX +Qo +Qo +iw +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +Qo JW JW JW @@ -15698,33 +15753,33 @@ OW pw OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +Qo +Qo +Qo +Qo +Qo +Qo +mK +mK +mK +mK +mK +XJ +OX +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK ke OG JW @@ -15849,34 +15904,34 @@ yz OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +XJ +Qo +Qo +Qo +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK JW JW JW @@ -16001,34 +16056,34 @@ yz OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +Qo +mK +mK +iw +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK PF JW JW @@ -16153,34 +16208,34 @@ yz OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +mK +mK +mK +mK +mK +Qo +Qo +Qo +Qo +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK sT oW oW @@ -16305,37 +16360,37 @@ yz OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +iw +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +Qo +Qo +Qo +Qo +mK +mK +mK +mK +mK sT PF JW @@ -16457,37 +16512,37 @@ yz OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK sN fq JW @@ -16609,35 +16664,35 @@ yz OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +Qo +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK qc qc Zt @@ -16759,37 +16814,37 @@ Rd (49,1,1) = {" yz OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo +mK +mK +mK +mK +Qo +Qo +Qo +Qo +Qo +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK qc Zt Zt @@ -16910,38 +16965,38 @@ Rd "} (50,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +Qo +Qo +Qo +Qo +mK +mK +mK +mK my Zt Zt @@ -17062,38 +17117,38 @@ Rd "} (51,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +mK +mK +Qo +Qo +Qo +mK +Qo +Qo +Pp +Qo +mK +mK +Qo +Qo +Qo +Qo +mK +mK +mK Zt Zt Zt @@ -17214,38 +17269,38 @@ Rd "} (52,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +im +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +Qo +Qo +Qo +Qo +Qo +mK +mK +Qo +Qo +mK +mK +mK +Qo +Qo +mK +mK +mK qc Zt Zt @@ -17366,36 +17421,36 @@ Rd "} (53,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +XJ +Qo +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +Qo +Qo +mK qc qc qc @@ -17518,36 +17573,36 @@ Ho "} (54,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +Qo +mK +mK +mK +mK +Qo +Qo +pa +Qo +Qo +Qo +mK +Qo +Qo +Qo +mK +mK +mK +mK +Qo +mK +mK +mK +mK +Qo +Qo +Qo +mK qc qc qc @@ -17670,36 +17725,36 @@ Ho "} (55,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +Qo +Qo +mK +mK +mK +pa +Qo +Qo +Qo +Qo +Qo +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK +Qo +Qo +Qo +mK qc IB qc @@ -17822,36 +17877,36 @@ Ho "} (56,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +Qo +mK +mK +mK +Qo +Qo +Qo +mK +mK +pa +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +Qo +Qo +Qo +mK +mK +mK qc IB IB @@ -17947,63 +18002,63 @@ NP Qd NP PM -PM -PM -PM -NP -NP -YX -IP -NP -PM -PM -PM -NP -NP -NP -Lw -NP -NP -NP -NP -GR -bt -NP -NP -Ho -"} -(57,1,1) = {" -yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +PM +PM +PM +NP +NP +YX +IP +NP +PM +PM +PM +NP +NP +NP +Lw +NP +NP +NP +NP +GR +bt +NP +NP +Ho +"} +(57,1,1) = {" +yz +mK +mK +Qo +Qo +mK +mK +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK +Qo +Qo +mK +mK +mK qc IB IB @@ -18126,36 +18181,36 @@ Ho "} (58,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +Qo +Qo +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK +mK qc qc IB @@ -18278,36 +18333,36 @@ Ho "} (59,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +Qo +Qo +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +Qo +mK qc qc qc @@ -18430,36 +18485,36 @@ Ho "} (60,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +Qo +Qo +mK +mK +mK +Qo +Qo +Qo +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +mK +Qo +Qo +mK qc qc qc @@ -18582,17 +18637,17 @@ Ho "} (61,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -oF -oF +mK +mK +mK +Qo +Qo +mK +mK +Qo +Qo +WI +WI oF oF OW @@ -18606,13 +18661,13 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -qc +mK +mK +mK +Qo +Qo +Qo +mK qc qc qc @@ -18734,16 +18789,16 @@ Ho "} (62,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -OW -oF +mK +mK +mK +Qo +Qo +Qo +mK +mK +Qo +WI WI WI oF @@ -18758,17 +18813,17 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -qc -qc -qc +mK +mK +mK +mK +Qo +Qo +Qo +IB IB IB +Hz VQ jU Cp @@ -18886,17 +18941,17 @@ Ho "} (63,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW -oF +mK +mK +mK +mK +Qo +Qo +im +mK oF WI +WI oF oF OW @@ -18910,15 +18965,15 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -qc -qc -qc +mK +mK +mK +mK +Qo +Qo +Qo +IB +IB qc qc VQ @@ -19038,14 +19093,14 @@ Ho "} (64,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +mK +Qo +Qo +mK oF WI WI @@ -19062,14 +19117,14 @@ OW OW OW OW -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +mK +mK +mK +mK qc qc jU @@ -19190,18 +19245,18 @@ Ho "} (65,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo +Qo +Qo +mK oF WI -WI -WI +TS +HO oF oF OW @@ -19342,18 +19397,18 @@ Ho "} (66,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +im +Qo +Qo +mK +mK oF oF oF -WI +EW bO oF oF @@ -19494,14 +19549,14 @@ Ho "} (67,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +Qo +Qo +Qo +mK +mK oF oF bD @@ -19646,14 +19701,14 @@ Ho "} (68,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +Qo +mK +mK +mK +mK oF WI id @@ -19798,14 +19853,14 @@ Ho "} (69,1,1) = {" yz -OW -OW -OW -OW -OW -OW -OW -OW +mK +mK +mK +Qo +mK +mK +mK +mK oF ot Qa @@ -19950,12 +20005,12 @@ Ho "} (70,1,1) = {" yz -OW -OW -OW -OW -OW -OW +mK +mK +mK +Qo +Qo +mK oF oF Pa @@ -20102,11 +20157,11 @@ Ho "} (71,1,1) = {" yz -OW -OW -OW -OW -OW +mK +mK +mK +mK +Qo oF oF WI @@ -20258,7 +20313,7 @@ OW OW OW OW -oF +WI oF WI WI @@ -20410,8 +20465,8 @@ OW OW OW oF -WI -WI +EW +TS WI WI oF @@ -25172,9 +25227,9 @@ LT ga pj BE -BE +Dw bg -BE +Dw rx hk Bk diff --git a/_maps/map_files/Campaign maps/tgmc_raid_base/tgmc_raiding_base.dmm b/_maps/map_files/Campaign maps/tgmc_raid_base/tgmc_raiding_base.dmm new file mode 100644 index 0000000000000..4e81ba4c5c3b5 --- /dev/null +++ b/_maps/map_files/Campaign maps/tgmc_raid_base/tgmc_raiding_base.dmm @@ -0,0 +1,35698 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"ab" = ( +/obj/structure/table/mainship, +/obj/item/storage/briefcase, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"ac" = ( +/obj/structure/largecrate/random, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"ad" = ( +/obj/structure/monorail{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ae" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison/darkbrown/corner, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"af" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"ag" = ( +/obj/structure/prop/brokenvendor/brokenweaponsrack, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"ah" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"ai" = ( +/obj/effect/spawner/random/weaponry/explosive/grenade/multiplefour, +/obj/structure/rack, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security) +"aj" = ( +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"ak" = ( +/obj/structure/table, +/obj/item/attachable/bayonetknife, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"al" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"am" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"an" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ao" = ( +/obj/item/weapon/gun/rifle/standard_autoshotgun, +/obj/structure/closet/secure_closet/guncabinet, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"ap" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/offices) +"aq" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"ar" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"as" = ( +/obj/machinery/vending/nanomed, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"at" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"au" = ( +/obj/structure/largecrate/supply/floodlights, +/obj/machinery/light, +/turf/open/floor/prison/darkbrown, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"av" = ( +/obj/machinery/light, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"aw" = ( +/obj/effect/spawner/random/misc/plant, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"ax" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"aA" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"aB" = ( +/obj/machinery/door/poddoor/shutters/mainship{ + dir = 1; + id = "South-Colony-Garage" + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"aC" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"aD" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"aE" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"aF" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"aH" = ( +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"aI" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/yellow_cargo, +/area/campaign/tgmc_raiding/underground/general/prep) +"aJ" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"aK" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/prison/darkbrown{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"aL" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"aM" = ( +/obj/structure/monorail{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/indoor/station) +"aO" = ( +/obj/structure/computer3frame, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"aP" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"aS" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"aT" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/drink_cans, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"aU" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"aV" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"aW" = ( +/obj/structure/largecrate/random, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"aX" = ( +/obj/machinery/door/airlock/multi_tile/mainship/maint/free_access{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"aY" = ( +/obj/effect/spawner/random/engineering/structure/tank_dispenser, +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"aZ" = ( +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"ba" = ( +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"bb" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkred{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"bc" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"bd" = ( +/turf/open/floor/prison/yellow/corner, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"be" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/firstaid{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/spawner/random/medical/firstaid, +/turf/open/floor/mainship/sterile/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"bf" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"bg" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"bh" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"bi" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"bj" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"bl" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"bm" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"bn" = ( +/turf/open/floor/prison/darkred{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"bo" = ( +/obj/machinery/door/airlock/mainship/command/free_access, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"bp" = ( +/obj/structure/closet/secure_closet/bar/captain, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"bq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"br" = ( +/obj/structure/bed/chair/sofa/corsat/right, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"bs" = ( +/obj/machinery/gibber, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"bt" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"bu" = ( +/obj/structure/flora/desert/bush, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"bv" = ( +/obj/structure/table/gamblingtable, +/obj/item/coin/platinum, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"bw" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/prison/darkbrown{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"bx" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"by" = ( +/obj/structure/table/mainship, +/obj/item/book/manual/marine_law, +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security) +"bz" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner, +/area/campaign/tgmc_raiding/underground/general/hallway) +"bA" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"bB" = ( +/obj/machinery/door/airlock/multi_tile/mainship/secdoor{ + dir = 1 + }, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"bC" = ( +/obj/structure/ship_ammo/cas/minirocket/smoke, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"bD" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"bE" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"bF" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"bG" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"bH" = ( +/obj/structure/desertdam/decals/road{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"bI" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/machinery/computer/emails{ + density = 0 + }, +/turf/open/floor/mainship/blue/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"bJ" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"bK" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"bL" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"bM" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/threeside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"bN" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"bO" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/prison/darkbrown/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"bP" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/wrapped/berrybar, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"bQ" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"bS" = ( +/obj/machinery/door/airlock/mainship/security/glass, +/turf/open/floor/prison/darkred/full, +/area/campaign/tgmc_raiding/colony/indoor/security) +"bT" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"bU" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"bW" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"bY" = ( +/turf/open/floor/mainship/red/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security) +"bZ" = ( +/obj/effect/turf_decal/riverdecal, +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"ca" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/clothing/general, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"cb" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"cc" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"cd" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"ce" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"cf" = ( +/obj/structure/window_frame/mainship/gray, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"cg" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison/darkbrown{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"ch" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"ci" = ( +/obj/structure/sign/poster{ + dir = 8 + }, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"ck" = ( +/obj/structure/barricade/metal{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"cm" = ( +/obj/structure/monorail, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"cn" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/living/boxing) +"co" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"cp" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"cq" = ( +/obj/structure/platform_decoration, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"cr" = ( +/obj/structure/platform_decoration, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"cs" = ( +/obj/structure/prop/brokenvendor/brokenmarinemedvendor, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"cu" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"cv" = ( +/obj/machinery/light, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"cw" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"cx" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"cy" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/engineering/powercell, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"cz" = ( +/obj/structure/barricade/metal{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"cA" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"cB" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"cC" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/prison/darkbrown{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"cE" = ( +/obj/structure/rack, +/obj/effect/spawner/random/food_or_drink/beer, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"cG" = ( +/obj/machinery/door/airlock/multi_tile/mainship/medidoor{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"cH" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"cI" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"cJ" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/extinguisher, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"cK" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"cL" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"cM" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"cO" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"cP" = ( +/obj/structure/monorail{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"cR" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison/darkbrown{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"cS" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"cU" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/hud/health, +/obj/item/healthanalyzer, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"cV" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"cX" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"cY" = ( +/obj/structure/bed/chair/sofa/corsat/right, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"cZ" = ( +/obj/structure/largecrate/supply/supplies/metal, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"db" = ( +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"dc" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"dd" = ( +/turf/closed/shuttle/escapeshuttle, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"de" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"df" = ( +/obj/structure/cable, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"dh" = ( +/obj/structure/table/mainship, +/obj/item/restraints/handcuffs, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"di" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"dj" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"dl" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"dm" = ( +/obj/structure/bed/chair/sofa/corner{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"dn" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"do" = ( +/obj/effect/spawner/random/misc/trash, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"dp" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"dq" = ( +/obj/structure/largecrate/supply/supplies/plasteel, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"dr" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"ds" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"dt" = ( +/obj/structure/table/mainship, +/obj/item/weapon/gun/pistol/standard_heavypistol, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"du" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"dv" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"dw" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"dx" = ( +/obj/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"dy" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"dz" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"dB" = ( +/obj/structure/reagent_dispensers/fueltank/xfuel, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"dC" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"dD" = ( +/obj/structure/rock/basalt/pile, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"dE" = ( +/obj/machinery/door/window{ + dir = 1 + }, +/obj/structure/window/reinforced/tinted/frosted{ + dir = 8 + }, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"dF" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"dG" = ( +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security) +"dH" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"dJ" = ( +/obj/structure/flora/tree/joshua, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"dK" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"dL" = ( +/obj/machinery/door/airlock/multi_tile/mainship/secdoor, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"dN" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"dO" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"dP" = ( +/obj/structure/curtain/open/temple, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"dQ" = ( +/obj/structure/sink{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"dR" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"dS" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"dT" = ( +/obj/structure/prop/mainship/sensor_computer3, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"dU" = ( +/obj/structure/rack, +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"dV" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"dW" = ( +/obj/structure/bed/chair/office/dark/east, +/turf/open/floor/mainship/blue/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"dY" = ( +/obj/machinery/computer3, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"dZ" = ( +/obj/machinery/computer/atmos_alert, +/obj/structure/table/mainship, +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"ea" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"eb" = ( +/turf/closed/wall/mainship/gray/outer, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"ec" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"ed" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/effect/landmark/patrol_point/tgmc_14, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"ef" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"eg" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"eh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"ei" = ( +/obj/structure/barricade/guardrail, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"ej" = ( +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security) +"ek" = ( +/obj/machinery/vending/medical, +/turf/open/floor/mainship/sterile/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"el" = ( +/obj/machinery/power/apc{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"em" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"en" = ( +/obj/structure/prop/mainship/sensor_computer2, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"eo" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/sugary_snack, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"ep" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"eq" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"er" = ( +/mob/living/simple_animal/mouse, +/obj/structure/platform, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"es" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"et" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"eu" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic/personal, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"ev" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/colonist, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"ew" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"ex" = ( +/obj/machinery/door/airlock/mainship/generic, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"ey" = ( +/obj/structure/cargo_container/ch_green{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"ez" = ( +/obj/structure/flora/pottedplant, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"eA" = ( +/obj/structure/prop/mainship/sensor_computer2, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"eB" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"eC" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"eD" = ( +/turf/open/floor/mainship/green{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"eE" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"eF" = ( +/obj/structure/prop/mainship/mission_planning_system{ + desc = "This gathers all information about the Self-Destruct and pools it into one repository."; + name = "self destruct information tower" + }, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"eH" = ( +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"eI" = ( +/obj/structure/bed/chair/sofa/corsat/verticalsouth, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"eJ" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"eL" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"eM" = ( +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"eN" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"eO" = ( +/turf/open/floor/prison/green, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"eP" = ( +/obj/machinery/shower, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"eQ" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"eR" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"eS" = ( +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"eT" = ( +/obj/machinery/door/airlock/mainship/command/free_access{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"eU" = ( +/obj/machinery/power/smes/buildable/empty{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"eV" = ( +/obj/structure/prop/brokenvendor/brokenuniformvendor/specialist, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"eW" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"eX" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"eY" = ( +/obj/structure/prop/mainship/ship_memorial, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"eZ" = ( +/obj/structure/rack, +/obj/item/toy/prize/deathripley, +/obj/structure/sign/poster{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"fa" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"fb" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"fc" = ( +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"fd" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"fe" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"ff" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"fg" = ( +/obj/structure/largecrate/supply/ammo/standard_ammo, +/turf/open/floor/mainship/red/full, +/area/campaign/tgmc_raiding/underground/security) +"fh" = ( +/turf/open/floor/mainship/blue/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"fi" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"fj" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"fk" = ( +/obj/structure/prop/mainship/mapping_computer, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"fl" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"fm" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"fn" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"fo" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"fp" = ( +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"fq" = ( +/obj/machinery/status_display, +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/command) +"fr" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"fs" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"ft" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"fu" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"fv" = ( +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"fx" = ( +/obj/machinery/light, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"fy" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/red{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"fz" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"fA" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/library) +"fB" = ( +/obj/structure/cable, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"fC" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"fD" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"fE" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"fF" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command) +"fG" = ( +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"fH" = ( +/obj/machinery/power/smes/buildable/empty, +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"fI" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"fJ" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"fK" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"fL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"fN" = ( +/obj/structure/janitorialcart, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"fO" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/window_frame/colony, +/obj/item/shard, +/turf/open/floor/plating/dmg3, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"fP" = ( +/obj/machinery/vending/engivend, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"fQ" = ( +/obj/structure/sign/poster{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"fR" = ( +/obj/structure/toilet, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"fS" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"fT" = ( +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"fU" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"fV" = ( +/obj/structure/monorail, +/obj/machinery/door/poddoor, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"fW" = ( +/obj/machinery/door/airlock/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"fX" = ( +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"fY" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"ga" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/stairs/railstairs_vert{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"gb" = ( +/obj/structure/rack, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"gc" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/mainship/sterile/corner, +/area/campaign/tgmc_raiding/underground/medbay) +"gd" = ( +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ge" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"gf" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"gg" = ( +/obj/machinery/power/monitor, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"gh" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command) +"gi" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/security) +"gj" = ( +/obj/structure/prop/brokenvendor/brokenspecialistvendor/sg, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"gk" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"gl" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"gm" = ( +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"gn" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"go" = ( +/obj/structure/cargo_container/ch_red{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"gp" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/hallway) +"gq" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"gs" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"gt" = ( +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"gu" = ( +/obj/structure/prop/brokenvendor/brokenweaponsrack, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"gv" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"gw" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"gx" = ( +/obj/structure/closet/secure_closet/medical1/colony, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"gy" = ( +/obj/machinery/door/airlock/multi_tile/mainship/blackgeneric/glass, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/living/barracks) +"gz" = ( +/obj/machinery/light, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"gA" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"gB" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"gC" = ( +/obj/structure/monorail, +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"gD" = ( +/turf/open/floor/mainship/black/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"gE" = ( +/obj/structure/sign/securearea/firingrange, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"gF" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"gG" = ( +/obj/structure/platform_decoration{ + dir = 10 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"gH" = ( +/obj/structure/dispenser, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"gI" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/general/prep) +"gJ" = ( +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"gK" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"gL" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"gN" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/prison/darkbrown{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"gO" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"gP" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"gQ" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"gR" = ( +/obj/machinery/vending/cigarette/colony, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"gS" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"gT" = ( +/obj/machinery/power/apc, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"gU" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"gV" = ( +/obj/structure/cargo_container/ch_green, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"gW" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"gX" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"gY" = ( +/obj/structure/flora/drought/barrel_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"gZ" = ( +/obj/structure/curtain/medical, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"ha" = ( +/obj/structure/cable, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"hb" = ( +/obj/machinery/door/window{ + dir = 2 + }, +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"hc" = ( +/obj/structure/table/woodentable, +/obj/effect/spawner/random/misc/table_lighting, +/turf/open/floor/tile/chapel{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"hd" = ( +/obj/structure/bed/chair/sofa/corsat/left, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"he" = ( +/obj/machinery/iv_drip, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"hf" = ( +/obj/effect/spawner/random/engineering/pickaxe, +/obj/structure/rack, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"hg" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"hh" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"hi" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"hj" = ( +/obj/structure/cable, +/turf/open/floor/mainship/blue/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"hk" = ( +/obj/structure/largecrate/random/case/double, +/obj/machinery/light, +/turf/open/floor/prison/darkbrown, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"hm" = ( +/obj/structure/ship_ammo/cas/bomb/moab, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"hn" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ho" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"hp" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"hq" = ( +/obj/machinery/faxmachine, +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"hr" = ( +/obj/structure/barricade/guardrail{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"hs" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"ht" = ( +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"hu" = ( +/obj/item/trash/hotdog, +/obj/item/trash/cigbutt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"hv" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"hw" = ( +/obj/structure/largecrate/supply/medicine/medkits, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"hx" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"hy" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"hA" = ( +/obj/item/weapon/gun/rifle/standard_skirmishrifle, +/obj/structure/closet/secure_closet/guncabinet, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"hB" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"hC" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"hD" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"hE" = ( +/obj/machinery/door_control{ + id = "South-Colony-Garage" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"hF" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"hG" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"hH" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"hI" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"hJ" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"hK" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/health_analyzer, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"hL" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/living/barracks) +"hM" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison/darkbrown{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"hN" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"hO" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"hQ" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"hR" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison/darkbrown{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"hS" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"hT" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"hU" = ( +/obj/structure/rack, +/obj/effect/spawner/random/medical/heal_pack, +/turf/open/floor/mainship/sterile/corner, +/area/campaign/tgmc_raiding/underground/medbay) +"hV" = ( +/obj/structure/window/framed/colony, +/obj/structure/curtain/black, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"hW" = ( +/obj/effect/spawner/random/engineering/extinguisher, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"hX" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"ia" = ( +/obj/structure/sign/poster, +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"ib" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/monorail{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ic" = ( +/turf/open/floor/plating/ground/mars/random/dirt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"id" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/colony/indoor/station) +"ie" = ( +/obj/structure/table/woodentable, +/obj/item/flashlight/lamp/green, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"if" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/table_lighting, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"ig" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"ih" = ( +/turf/open/floor/prison/darkbrown/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"ii" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"ij" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"il" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"im" = ( +/obj/effect/turf_decal/warning_stripes/smartgunner, +/obj/effect/turf_decal/warning_stripes/box/small, +/obj/effect/turf_decal/warning_stripes/box/small{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"in" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"iq" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"ir" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"is" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"it" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"iu" = ( +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"iv" = ( +/turf/open/floor/mainship/orange/corner, +/area/campaign/tgmc_raiding/underground/engineering) +"iw" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"ix" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"iy" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command) +"iz" = ( +/turf/open/floor/mainship/orange/full, +/area/campaign/tgmc_raiding/underground/living/boxing) +"iA" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"iB" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"iC" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"iE" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/paper{ + pixel_x = 5 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"iF" = ( +/obj/effect/spawner/random/engineering/structure/powergenerator, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"iG" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"iH" = ( +/obj/structure/sign/poster{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"iJ" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"iK" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"iL" = ( +/obj/effect/spawner/random/misc/plant, +/obj/machinery/light, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"iM" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/snacks/mre_pack/meal2, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"iP" = ( +/obj/structure/largecrate/random, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"iR" = ( +/obj/machinery/vending/medical, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"iS" = ( +/obj/machinery/door/airlock/multi_tile/mainship/engineering/glass{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"iT" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"iU" = ( +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"iV" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"iW" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security{ + dir = 8 + }, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"iY" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"iZ" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/command) +"ja" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"jb" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/command/captain) +"jc" = ( +/obj/structure/largecrate/supply/medicine/iv, +/turf/open/floor/prison/darkbrown, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"jd" = ( +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground) +"je" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"jf" = ( +/obj/structure/table, +/obj/effect/spawner/random/misc/book, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"jg" = ( +/obj/machinery/door/airlock/mainship/marine{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"jh" = ( +/obj/machinery/door/airlock/multi_tile/mainship/medidoor{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"ji" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/extinguisher/miniweighted, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"jj" = ( +/obj/effect/turf_decal/riverdecal, +/obj/structure/stairs/railstairs_vert{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"jk" = ( +/obj/structure/table/mainship, +/obj/machinery/faxmachine, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"jl" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"jm" = ( +/obj/structure/cargo_container/green, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"jn" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"jo" = ( +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"jp" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"jq" = ( +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"jr" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"js" = ( +/obj/machinery/door/airlock/mainship/generic, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"jt" = ( +/turf/open/floor/mainship/blue/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"ju" = ( +/obj/structure/table, +/obj/item/toy/plush/snake, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"jv" = ( +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"jw" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"jx" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"jy" = ( +/obj/structure/prop/vehicle/truck/truckcargo{ + dir = 4 + }, +/obj/structure/desertdam/decals/road, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"jz" = ( +/obj/structure/flora/desert/grass, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"jA" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"jB" = ( +/obj/structure/table/mainship, +/obj/item/book/manual/marine_law, +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"jC" = ( +/obj/structure/rock/basalt/alt3{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"jE" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"jF" = ( +/obj/structure/rock/basalt/pile, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"jG" = ( +/obj/structure/largecrate/supply/supplies, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"jH" = ( +/turf/open/floor/mainship/red/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"jJ" = ( +/obj/structure/rack, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"jK" = ( +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"jL" = ( +/obj/structure/monorail{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"jM" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"jN" = ( +/obj/structure/sign/poster{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"jO" = ( +/obj/structure/sign/poster, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"jP" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"jQ" = ( +/obj/structure/rack, +/obj/effect/spawner/random/medical/heal_pack, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"jR" = ( +/obj/structure/table, +/obj/item/toy/card/ace/hearts, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"jS" = ( +/obj/effect/turf_decal/warning_stripes/leader, +/obj/effect/turf_decal/warning_stripes/box/small, +/obj/effect/turf_decal/warning_stripes/box/small{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"jT" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"jU" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"jV" = ( +/obj/structure/rack, +/obj/item/explosive/grenade/flashbang, +/obj/item/explosive/grenade/flashbang, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"jW" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"jX" = ( +/turf/open/floor/mainship/orange/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"jZ" = ( +/turf/open/floor/mainship/terragov/north, +/area/campaign/tgmc_raiding/underground/command) +"kb" = ( +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway) +"kc" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"kd" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"ke" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"kf" = ( +/obj/structure/prop/vehicle/truck{ + dir = 4 + }, +/obj/structure/desertdam/decals/road, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"kg" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"kh" = ( +/turf/open/floor/prison/green{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"ki" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"kk" = ( +/turf/open/floor/mainship/red{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/security) +"kl" = ( +/obj/structure/table/mainship, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"km" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"kn" = ( +/obj/structure/prop/vehicle/crane/cranecargo, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"ko" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"kp" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/living/laundry) +"kq" = ( +/obj/machinery/light, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"kr" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/command) +"kt" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"ku" = ( +/obj/structure/prop/mainship/sensor_computer1, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"kv" = ( +/obj/structure/prop/brokenvendor/surplusclothes, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"kw" = ( +/obj/structure/prop/mainship/name_stencil/C, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"ky" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"kz" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"kA" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"kB" = ( +/obj/structure/table, +/obj/machinery/door/window/secure{ + dir = 2 + }, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"kC" = ( +/obj/machinery/processor, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"kD" = ( +/obj/machinery/light, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"kE" = ( +/obj/structure/table, +/obj/item/storage/fancy/cigarettes/dromedaryco, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"kG" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"kH" = ( +/obj/machinery/vending/cola, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"kJ" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"kK" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"kL" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"kM" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/engineering/technology_scanner, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"kN" = ( +/obj/structure/filingcabinet, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"kO" = ( +/obj/structure/prop/mainship/name_stencil/T, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"kP" = ( +/obj/structure/prop/mainship/sensor_computer2, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"kQ" = ( +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"kS" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"kT" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"kU" = ( +/obj/machinery/vending/nanomed{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/roller, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"kV" = ( +/obj/structure/largecrate/random/case/double, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"kW" = ( +/obj/structure/bed/chair/sofa/corsat/verticalmiddle, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"kX" = ( +/obj/structure/cable, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"kY" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"kZ" = ( +/turf/open/floor/prison/green{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"la" = ( +/obj/effect/turf_decal/warning_stripes/medical, +/obj/effect/turf_decal/warning_stripes/box/small, +/obj/effect/turf_decal/warning_stripes/box/small{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"lb" = ( +/obj/structure/sign/cold, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"lc" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"ld" = ( +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"le" = ( +/turf/open/floor/plating/dmg3, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"lf" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/donut, +/turf/open/floor/prison/darkred{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"lh" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"li" = ( +/obj/machinery/computer3/server, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"lk" = ( +/turf/open/floor/mainship/sterile/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"lm" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"ln" = ( +/obj/structure/ship_ammo/cas/rocket/fatty, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"lp" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"lq" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"lr" = ( +/obj/structure/table/woodentable, +/obj/item/book, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"ls" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"lt" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/offices) +"lu" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"lv" = ( +/turf/open/floor/mainship/blue/corner, +/area/campaign/tgmc_raiding/underground/command/east) +"lw" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"lx" = ( +/obj/structure/table, +/obj/item/flashlight/lamp/green, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"ly" = ( +/obj/structure/table, +/obj/item/weapon/cane, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"lz" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"lA" = ( +/obj/structure/girder, +/turf/open/floor/plating/dmg1, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"lC" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"lD" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"lE" = ( +/obj/machinery/door/airlock/glass{ + dir = 2 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"lF" = ( +/obj/structure/bed/chair/sofa/corsat/right, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/colony/indoor/station) +"lG" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"lH" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"lI" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"lK" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"lL" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"lM" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"lN" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"lO" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/monorail{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"lP" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"lQ" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"lR" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"lS" = ( +/turf/open/floor/plating/dmg2, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"lT" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"lU" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"lV" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison/darkbrown{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"lW" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/mainship/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"lY" = ( +/obj/machinery/door/airlock/mainship/generic, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"lZ" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"ma" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/medbay) +"mb" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"mc" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"md" = ( +/obj/structure/prop/brokenvendor/surplusarmor, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"me" = ( +/obj/structure/table/mainship, +/obj/machinery/recharger, +/obj/machinery/light, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"mf" = ( +/obj/item/target/default, +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"mg" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"mh" = ( +/obj/structure/largecrate/supply/medicine/medkits, +/turf/open/floor/prison/darkbrown/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"mj" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/tile/chapel, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"mk" = ( +/obj/machinery/door/airlock/multi_tile/mainship/secdoor/glass, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"ml" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"mm" = ( +/obj/structure/closet/wardrobe/chaplain_black, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"mn" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"mo" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"mp" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"mr" = ( +/turf/open/floor/mainship/red/corner, +/area/campaign/tgmc_raiding/underground/security) +"ms" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/living/barracks) +"mt" = ( +/obj/structure/table/mainship, +/obj/item/clipboard, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"mu" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"mv" = ( +/obj/structure/closet/crate/freezer/rations, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"mw" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"mx" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"my" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"mA" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"mB" = ( +/obj/structure/table/mainship, +/obj/machinery/faxmachine, +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"mC" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"mE" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"mF" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/colonist, +/obj/item/clothing/head/collectable/rabbitears, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"mG" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"mH" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"mJ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"mL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"mN" = ( +/obj/structure/flora/drought/shroom, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground) +"mO" = ( +/obj/effect/turf_decal/warning_stripes/engineer, +/obj/effect/turf_decal/warning_stripes/box/small, +/obj/effect/turf_decal/warning_stripes/box/small{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"mP" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"mQ" = ( +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"mR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/stairs/railstairs_vert{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"mS" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"mU" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"mV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"mW" = ( +/turf/open/floor/mainship/green, +/area/campaign/tgmc_raiding/underground/living/barracks) +"mX" = ( +/obj/machinery/power/monitor, +/obj/structure/cable, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"mZ" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/snacks/mre_pack/meal3, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"na" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"nb" = ( +/obj/structure/monorail, +/obj/structure/monorail{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"nc" = ( +/obj/structure/rack, +/obj/item/toy/prize/fireripley, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"nd" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"ne" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"nf" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ng" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"ni" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"nj" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"nk" = ( +/obj/structure/bookcase, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"nl" = ( +/obj/structure/monorail{ + dir = 6 + }, +/obj/structure/monorail{ + dir = 5 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"nn" = ( +/obj/structure/monorail{ + dir = 4 + }, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"no" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"np" = ( +/obj/machinery/door/poddoor/shutters/mainship{ + id = "Train-Mechanic-Storage" + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"nr" = ( +/obj/structure/rack, +/turf/open/floor/mainship/green, +/area/campaign/tgmc_raiding/underground/living/barracks) +"ns" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"nt" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"nu" = ( +/obj/structure/desertdam/decals/road{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"nv" = ( +/obj/structure/sign/poster{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"nw" = ( +/obj/structure/desertdam/decals/road{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"nx" = ( +/obj/structure/largecrate/supply/medicine/blood, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ny" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"nz" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"nA" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"nB" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison/darkbrown{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"nC" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/prison/darkbrown{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"nD" = ( +/obj/structure/bed/chair/sofa/corsat/verticalmiddle, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"nE" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"nF" = ( +/obj/structure/table, +/obj/item/book, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"nH" = ( +/obj/structure/table, +/obj/item/tool/hatchet, +/turf/open/floor/prison/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"nI" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"nJ" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"nK" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/prison/darkbrown/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"nL" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"nM" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"nN" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"nO" = ( +/obj/structure/kitchenspike, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"nP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"nQ" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"nR" = ( +/obj/structure/largecrate/supply/medicine, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"nS" = ( +/obj/machinery/photocopier, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command) +"nT" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"nU" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"nW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"nX" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"nY" = ( +/obj/structure/rock/basalt/pile/alt, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"nZ" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"oa" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"ob" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"oc" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"od" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"oe" = ( +/obj/structure/largecrate/random/case/small, +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"of" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"og" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"oh" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"oi" = ( +/obj/structure/rock/basalt/pile/alt, +/turf/open/floor/plating/ground/mars/random/dirt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"oj" = ( +/obj/item/weapon/gun/rifle/standard_lmg, +/obj/structure/closet/secure_closet/guncabinet, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"ol" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/donut, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"om" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"on" = ( +/obj/structure/rock/basalt/alt3{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"oq" = ( +/obj/structure/table/mainship, +/obj/structure/bedsheetbin, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"or" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/laundry) +"os" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"ot" = ( +/obj/structure/bed/chair/sofa/corsat/left, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"ov" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/colonist, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"ow" = ( +/obj/structure/rack, +/obj/item/toy/prize/durand, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"ox" = ( +/turf/open/floor/mainship/cargo/arrow{ + dir = 0 + }, +/area/campaign/tgmc_raiding/colony/indoor/station) +"oy" = ( +/obj/machinery/vending/security, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security) +"oz" = ( +/obj/structure/cargo_container/ch_green{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"oA" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"oC" = ( +/mob/living/simple_animal/mouse, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"oD" = ( +/obj/structure/desertdam/decals/road{ + dir = 1 + }, +/obj/structure/prop/vehicle/truck{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"oF" = ( +/obj/machinery/computer/atmos_alert, +/obj/structure/table/mainship, +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"oG" = ( +/obj/machinery/iv_drip, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"oH" = ( +/obj/structure/desertdam/decals/road, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"oJ" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"oK" = ( +/obj/structure/bed/chair/sofa/corsat/right, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"oL" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"oM" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"oN" = ( +/obj/structure/platform, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"oO" = ( +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"oP" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command) +"oQ" = ( +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"oR" = ( +/obj/structure/closet/radiation, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"oT" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"oU" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"oW" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"oX" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/security) +"oY" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"pb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"pc" = ( +/obj/structure/desertdam/decals/road{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"pe" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/prison/darkbrown{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"pf" = ( +/obj/structure/rack, +/obj/item/toy/prize/mauler, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"pg" = ( +/obj/structure/rack, +/obj/effect/spawner/random/weaponry/explosive/grenade/multiplefour, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ph" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 8 + }, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"pi" = ( +/turf/open/floor/tile/chapel{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"pj" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"pl" = ( +/obj/effect/spawner/random/engineering/structure/tank/fuelweighted, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"pp" = ( +/obj/structure/window/framed/wood/reinforced, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"pq" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"ps" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"pt" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"pu" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"pv" = ( +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/indoor/station) +"pw" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"px" = ( +/obj/item/attachable/bayonetknife, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"py" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"pz" = ( +/obj/effect/spawner/random/engineering/tool, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"pA" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"pB" = ( +/obj/structure/closet/secure_closet/security_empty, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"pC" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/general/prep) +"pD" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"pE" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"pF" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"pG" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"pH" = ( +/obj/machinery/door/airlock/mainship/security{ + dir = 2 + }, +/turf/open/floor/prison/darkred/full, +/area/campaign/tgmc_raiding/colony/indoor/security) +"pI" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command) +"pJ" = ( +/obj/structure/largecrate/supply/medicine, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"pK" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/indoor/station) +"pL" = ( +/obj/structure/prop/mainship/mission_planning_system{ + desc = "This gathers all information about the Self-Destruct and pools it into one repository."; + name = "self destruct information tower" + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"pM" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"pN" = ( +/obj/structure/largecrate/supply/supplies/coifs, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"pO" = ( +/turf/closed/wall/r_wall, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"pP" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"pQ" = ( +/obj/structure/sign/engie{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"pR" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"pS" = ( +/obj/structure/bed/chair/sofa/corsat/left, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"pT" = ( +/obj/structure/table/gamblingtable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"pU" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"pW" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command) +"pX" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"pY" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"pZ" = ( +/obj/structure/largecrate/supply/medicine/iv, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"qa" = ( +/obj/machinery/cic_maptable/no_flags, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"qb" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/firstaid{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/spawner/random/medical/firstaid, +/obj/machinery/light, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"qd" = ( +/obj/structure/flora/drought/barrel_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"qe" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"qf" = ( +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"qg" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"qh" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"qi" = ( +/turf/open/floor/prison/darkred{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"qj" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"qk" = ( +/obj/structure/sign/poster{ + dir = 8 + }, +/turf/open/floor/mainship/green{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"ql" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"qm" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"qn" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/drinks/cans/beer, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"qo" = ( +/obj/structure/flora/desert/grass, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"qp" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/threeside{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"qq" = ( +/obj/structure/monorail{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"qr" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"qs" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"qt" = ( +/obj/item/reagent_containers/food/drinks/cans/beer, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"qv" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/prison/darkbrown{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"qw" = ( +/obj/structure/closet, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"qx" = ( +/obj/structure/barricade/guardrail{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"qy" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/prison/bright_clean, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"qz" = ( +/obj/structure/closet/radiation, +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"qB" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"qC" = ( +/obj/structure/prop/vehicle/truck, +/obj/structure/desertdam/decals/road/edge/long, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"qF" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"qG" = ( +/turf/open/floor/mainship/black/corner, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"qH" = ( +/obj/structure/table/woodentable, +/obj/item/ashtray/bronze, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"qI" = ( +/obj/machinery/door/airlock/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"qJ" = ( +/turf/open/floor/prison/green/corner, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"qK" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/snacks/pizzapasta/meatballspaghetti, +/obj/item/tool/candle{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/machinery/light/small, +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"qL" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"qM" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"qN" = ( +/obj/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"qO" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/phone, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"qP" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"qQ" = ( +/obj/item/stack/sheet/animalhide/xeno, +/turf/open/floor/carpet/purple, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"qR" = ( +/turf/open/floor/mainship/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"qS" = ( +/turf/open/floor/mainship/black/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"qT" = ( +/obj/structure/sign/restroom, +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"qU" = ( +/obj/structure/table, +/obj/item/toy/card/ace/spades, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"qV" = ( +/obj/structure/urinal{ + dir = 4 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"qW" = ( +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"qX" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"ra" = ( +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"rb" = ( +/obj/structure/bed/chair/sofa/corsat, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"rc" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/engineering) +"rd" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"re" = ( +/obj/structure/desertdam/decals/road{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"rf" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"rg" = ( +/obj/machinery/light, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"rh" = ( +/obj/effect/turf_decal/riverdecal, +/obj/structure/table/mainship, +/obj/item/trash/cigbutt, +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/trash/cigbutt{ + pixel_x = 1; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"rj" = ( +/obj/machinery/door/airlock/multi_tile/mainship/blackgeneric, +/turf/open/floor/mainship/green{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"rk" = ( +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"rl" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"rm" = ( +/obj/structure/prop/mainship/sensor_computer1, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"rn" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"ro" = ( +/obj/structure/sink{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"rp" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/engineering/radio, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"rt" = ( +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"ru" = ( +/obj/structure/window_frame/mainship/gray, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"rv" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/snacks/mre_pack/meal4, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"rw" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"rx" = ( +/obj/structure/largecrate/supply/explosives/mines, +/turf/open/floor/mainship/red/full, +/area/campaign/tgmc_raiding/underground/security) +"ry" = ( +/obj/structure/sign/electricshock{ + dir = 8 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"rz" = ( +/obj/machinery/door_control{ + dir = 1; + id = "South-Colony-Garage" + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"rA" = ( +/obj/item/toy/plush/snake, +/obj/structure/flora/desert/grass, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"rB" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"rC" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"rD" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkred/corners{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"rE" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/computer/pod/old{ + name = "Register" + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"rF" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"rG" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"rH" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkbrown/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"rI" = ( +/obj/effect/spawner/random/engineering/pickaxe, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"rJ" = ( +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"rK" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/engibelt, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"rL" = ( +/obj/effect/spawner/random/engineering/tool, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"rN" = ( +/obj/structure/largecrate/random, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"rP" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"rQ" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"rR" = ( +/obj/item/trash/chips, +/obj/item/paper/crumpled{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/item/paper/crumpled{ + pixel_y = -2 + }, +/obj/item/paper/crumpled{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"rS" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/yellow_cargo, +/area/campaign/tgmc_raiding/underground/general/prep) +"rT" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"rV" = ( +/obj/structure/largecrate/supply/powerloader, +/turf/open/floor/prison/darkbrown{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"rW" = ( +/obj/machinery/light, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"rX" = ( +/obj/effect/spawner/random/misc/trash, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"rY" = ( +/obj/structure/rack, +/obj/item/toy/dice, +/obj/machinery/light, +/turf/open/floor/mainship/green, +/area/campaign/tgmc_raiding/underground/living/barracks) +"rZ" = ( +/obj/structure/bed/fancy, +/obj/item/bedsheet/captain, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"sa" = ( +/obj/structure/table/mainship, +/obj/item/clothing/mask/cigarette, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"sb" = ( +/obj/structure/sign/restroom{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"sc" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"sd" = ( +/obj/structure/sink{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"sf" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"sg" = ( +/obj/vehicle/ridden/powerloader, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"sh" = ( +/obj/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/colony/indoor/station) +"si" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = 3 + }, +/obj/item/paper{ + pixel_y = 4 + }, +/obj/item/tool/pen, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"sj" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"sk" = ( +/obj/machinery/vending/nanomed, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"sl" = ( +/obj/machinery/vending/snack, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"sm" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"so" = ( +/obj/structure/sink{ + dir = 1 + }, +/turf/open/floor/prison/green, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"sp" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/colony/indoor/station) +"sq" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/item/toy/plush/rouny{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"sr" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ss" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/prison/darkbrown/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"st" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"su" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"sv" = ( +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"sw" = ( +/obj/structure/largecrate/supply/supplies/sandbags, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"sx" = ( +/turf/open/floor/mainship/blue/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"sy" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison/darkbrown{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"sz" = ( +/obj/item/trash/cheesie, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"sA" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"sB" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"sC" = ( +/obj/structure/prop/brokenvendor/brokenweaponsrack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"sD" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"sF" = ( +/obj/structure/sign/cold{ + dir = 1 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"sG" = ( +/obj/structure/cargo_container/hd{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"sH" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"sI" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"sJ" = ( +/obj/structure/bed/chair/sofa/corsat/verticalsouth, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"sK" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"sL" = ( +/obj/structure/prop/vehicle/van, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"sM" = ( +/obj/structure/table/mainship, +/turf/open/floor/prison/darkred{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"sN" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"sO" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"sP" = ( +/obj/structure/flora/drought/tall_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"sQ" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security) +"sR" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"sT" = ( +/obj/structure/cargo_container/horizontal{ + dir = 8 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"sU" = ( +/obj/structure/largecrate/random, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"sV" = ( +/obj/structure/rock/basalt{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"sW" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/stairs/railstairs_vert, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"sY" = ( +/obj/structure/largecrate/supply/medicine/blood, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"sZ" = ( +/obj/structure/prop/brokenvendor/brokenuniformvendor, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"ta" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"tb" = ( +/obj/structure/cargo_container/ch_red{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"tc" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"td" = ( +/turf/open/floor/tile/chapel{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"te" = ( +/obj/structure/rack, +/obj/effect/spawner/random/medical/medbelt, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"tg" = ( +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"ti" = ( +/obj/structure/rack, +/obj/item/toy/katana, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"tj" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"tk" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"tl" = ( +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"tm" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"tn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison/yellow/corner, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"to" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/effect/turf_decal/warning_stripes/thin, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"tp" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"tq" = ( +/obj/structure/stairs/corner_seamless{ + dir = 4 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"tr" = ( +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"ts" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"tt" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"tu" = ( +/obj/structure/table/woodentable, +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"tv" = ( +/turf/open/floor/prison/darkbrown{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"tw" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"tx" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/obj/structure/sign/nosmoking_2{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"ty" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"tz" = ( +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security) +"tB" = ( +/obj/effect/turf_decal/riverdecal, +/obj/structure/stairs/railstairs, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"tC" = ( +/obj/machinery/vending/snack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"tD" = ( +/turf/open/floor/prison/bright_clean, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"tE" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/cargo) +"tF" = ( +/obj/structure/rack, +/obj/item/storage/belt/utility/full, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"tG" = ( +/obj/machinery/hydroponics/slashable, +/turf/open/floor/prison/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"tH" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"tJ" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison/darkbrown{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"tL" = ( +/obj/machinery/vending/cola, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"tM" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"tN" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"tO" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"tP" = ( +/obj/effect/spawner/random/engineering/tool, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"tQ" = ( +/obj/machinery/shower, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"tR" = ( +/obj/structure/rack, +/obj/item/reagent_containers/food/drinks/coffee, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"tT" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"tU" = ( +/obj/structure/sign/poster{ + dir = 4 + }, +/turf/open/floor/mainship/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"tV" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"tW" = ( +/obj/structure/largecrate/supply/weapons/pistols, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"tX" = ( +/obj/item/reagent_containers/food/drinks/cans/beer, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"tY" = ( +/obj/structure/rock/basalt/pile/alt, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"tZ" = ( +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/living/boxing) +"ua" = ( +/obj/structure/table/mainship, +/obj/item/attachable/motiondetector, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"ub" = ( +/obj/effect/landmark/patrol_point/som/som_24, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"uc" = ( +/obj/machinery/griddle, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"ud" = ( +/obj/structure/table/mainship, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"ue" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"uf" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"ug" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"uh" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/engineering/toolbox, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"uj" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/pizzapasta/pastatomato, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"uk" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/snacks/mre_pack/meal6, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"ul" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"un" = ( +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"uo" = ( +/obj/machinery/power/monitor{ + name = "Main Power Grid Monitoring" + }, +/obj/structure/table/mainship, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"uq" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/gun/revolver/standard_revolver, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"us" = ( +/obj/structure/rock/basalt/pile/alt, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"ut" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"uu" = ( +/obj/machinery/light, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"uv" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"uw" = ( +/obj/structure/desertdam/decals/road{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"ux" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"uy" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison/darkbrown{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"uz" = ( +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"uA" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"uC" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"uD" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"uE" = ( +/obj/structure/stairs/seamless{ + dir = 1 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"uF" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"uG" = ( +/obj/structure/table, +/obj/item/clothing/suit/storage/apron, +/turf/open/floor/prison/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"uH" = ( +/obj/structure/stairs/seamless, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"uI" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison/darkbrown/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"uJ" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"uK" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"uL" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"uM" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"uN" = ( +/obj/structure/rack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"uO" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"uP" = ( +/obj/structure/table/gamblingtable, +/obj/item/toy/dice/d20, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"uQ" = ( +/obj/structure/sink, +/obj/structure/mirror, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"uR" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"uS" = ( +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"uT" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"uU" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"uV" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"uW" = ( +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"uX" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"uY" = ( +/obj/structure/sign/prop1{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"uZ" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"vb" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"vc" = ( +/obj/machinery/computer3/server, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"vd" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command) +"ve" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"vg" = ( +/obj/effect/spawner/random/food_or_drink/kitchenknife/butcherweighted, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"vh" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"vi" = ( +/obj/structure/cable, +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"vj" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 2 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"vk" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"vl" = ( +/obj/structure/flora/desert/grass, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"vm" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/bread, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"vn" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"vo" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"vp" = ( +/obj/item/paper/crumpled{ + pixel_y = -5 + }, +/obj/item/trash/cigbutt, +/obj/item/trash/cigbutt{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"vq" = ( +/obj/structure/rack, +/obj/item/toy/gun, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"vs" = ( +/obj/structure/ship_ammo/cas/bomb/fourhundred, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"vt" = ( +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"vu" = ( +/obj/effect/landmark/patrol_point/tgmc_24, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"vv" = ( +/obj/machinery/door/airlock/multi_tile/mainship/maint/free_access, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"vw" = ( +/obj/structure/table/mainship, +/obj/machinery/faxmachine, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"vx" = ( +/obj/structure/table, +/obj/item/toy/plush/gnome, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"vy" = ( +/obj/structure/cable, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"vz" = ( +/obj/structure/table/reinforced, +/obj/item/roller, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"vA" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"vC" = ( +/obj/structure/stairs/corner_seamless, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"vD" = ( +/obj/structure/closet/walllocker/hydrant/extinguisher, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/colony/indoor/station) +"vE" = ( +/obj/structure/prop/mainship/sensor_computer2, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"vF" = ( +/obj/structure/table/mainship, +/obj/item/restraints/handcuffs, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"vH" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/machinery/computer/emails{ + density = 0 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"vI" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"vJ" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"vK" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/cargo) +"vL" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"vM" = ( +/obj/structure/monorail{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"vN" = ( +/obj/machinery/door/airlock/multi_tile/mainship/blackgeneric/glass, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"vO" = ( +/obj/structure/barricade/metal, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"vP" = ( +/obj/structure/cargo_container/nt{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"vQ" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"vR" = ( +/obj/structure/table, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"vS" = ( +/obj/structure/table/woodentable, +/obj/structure/cable, +/turf/open/floor/tile/chapel{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"vT" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"vU" = ( +/obj/structure/platform_decoration{ + dir = 10 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"vV" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"vW" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"vX" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"vY" = ( +/obj/machinery/door/airlock/mainship/engineering/glass, +/turf/open/floor/mainship/orange/full, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"vZ" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"wa" = ( +/obj/structure/closet/fireaxecabinet, +/turf/closed/shuttle/escapeshuttle, +/area/campaign/tgmc_raiding/colony/indoor/station) +"wb" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"wc" = ( +/obj/effect/spawner/random/engineering/structure/tank/waterweighted, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"we" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"wf" = ( +/obj/structure/closet/secure_closet/freezer, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"wg" = ( +/obj/machinery/light, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"wh" = ( +/turf/open/floor/prison/darkbrown/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"wj" = ( +/turf/closed/wall/r_wall, +/area/campaign/tgmc_raiding/colony/indoor/security) +"wk" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"wl" = ( +/obj/structure/flora/drought/barrel_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"wm" = ( +/obj/machinery/iv_drip, +/turf/open/floor/mainship/sterile/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"wn" = ( +/obj/structure/platform_decoration{ + dir = 6 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"wo" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"wp" = ( +/obj/machinery/hydroponics/slashable, +/turf/open/floor/prison/green/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"wq" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/general/hallway) +"wr" = ( +/obj/structure/table, +/obj/item/binoculars, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"ws" = ( +/obj/structure/rock/basalt/pile, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"wt" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"wu" = ( +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"wv" = ( +/obj/structure/bed/chair/office/light, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"ww" = ( +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"wx" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"wy" = ( +/obj/effect/landmark/patrol_point/som/som_23, +/obj/structure/desertdam/decals/road{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"wz" = ( +/obj/structure/window/framed/chigusa, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"wA" = ( +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"wB" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"wC" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"wD" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"wE" = ( +/obj/structure/toilet, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"wF" = ( +/turf/open/floor/mainship/blue/corner, +/area/campaign/tgmc_raiding/underground/command) +"wG" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"wH" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"wI" = ( +/obj/structure/table/fancywoodentable, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"wJ" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"wK" = ( +/obj/structure/flora/pottedplant/twentytwo, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"wL" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"wN" = ( +/obj/structure/table/mainship, +/obj/machinery/microwave, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"wO" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"wP" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"wQ" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic/personal, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"wR" = ( +/obj/structure/bookcase, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security) +"wS" = ( +/obj/structure/girder, +/turf/open/floor/plating/dmg2, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"wT" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"wU" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"wW" = ( +/obj/effect/spawner/random/misc/structure/supplycrate, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"wX" = ( +/turf/open/floor/plating/dmg3, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"wY" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"wZ" = ( +/obj/structure/table/mainship, +/obj/item/trash/cigbutt, +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/trash/cigbutt{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/ashtray/bronze{ + pixel_y = 5 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"xa" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/red/full, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"xd" = ( +/obj/structure/rack, +/obj/item/toy/prize/odysseus, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"xe" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison/darkbrown{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"xf" = ( +/obj/effect/spawner/random/engineering/engibelt, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"xg" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"xh" = ( +/obj/structure/prop/mainship/mission_planning_system{ + desc = "This gathers all information about the Self-Destruct and pools it into one repository."; + name = "self destruct information tower" + }, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"xi" = ( +/obj/structure/prop/mainship/sensor_computer3, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"xj" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"xk" = ( +/obj/structure/cable, +/turf/open/floor/tile/chapel{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"xl" = ( +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"xn" = ( +/obj/machinery/cic_maptable/drawable/big, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"xp" = ( +/obj/structure/table/mainship, +/obj/machinery/light, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"xq" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/security) +"xs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"xt" = ( +/obj/structure/platform{ + dir = 6 + }, +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"xu" = ( +/obj/structure/desertdam/decals/road/edge/long, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"xv" = ( +/obj/structure/prop/vehicle/van{ + dir = 8 + }, +/obj/structure/desertdam/decals/road/edge/long{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"xw" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"xy" = ( +/obj/structure/table/reinforced, +/obj/item/storage/surgical_tray, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/mainship/sterile/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"xz" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/chapel) +"xA" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/cigar, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"xB" = ( +/obj/machinery/line_nexter, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"xC" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"xD" = ( +/obj/structure/monorail, +/obj/effect/landmark/patrol_point/tgmc_13, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"xE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"xF" = ( +/obj/machinery/bioprinter, +/turf/open/floor/mainship/sterile/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"xG" = ( +/obj/structure/rock/basalt/alt3{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"xH" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security) +"xI" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"xJ" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"xK" = ( +/obj/structure/sign/prop2{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"xL" = ( +/turf/open/floor/plating/dmg2, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"xM" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"xN" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"xO" = ( +/obj/structure/sign/prop4{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"xP" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison/darkbrown/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"xQ" = ( +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"xR" = ( +/obj/structure/prop/mainship/sensor_computer3, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"xS" = ( +/obj/structure/curtain/medical, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"xT" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"xU" = ( +/obj/machinery/door/poddoor/shutters/mainship{ + id = "Security-Armory" + }, +/turf/open/floor/mainship/red/full, +/area/campaign/tgmc_raiding/underground/security) +"xV" = ( +/turf/open/floor/mainship/blue/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"xW" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"xX" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"xY" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/stairs/railstairs_vert{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"ya" = ( +/obj/effect/landmark/patrol_point/som/som_13, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"yb" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"yc" = ( +/obj/structure/flora/pottedplant/twentytwo, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"ye" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"yf" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/colony/indoor/station) +"yg" = ( +/obj/structure/sign/engie, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"yh" = ( +/obj/item/trash/hotdog, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"yi" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"yj" = ( +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"yk" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"yl" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"ym" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"yn" = ( +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"yo" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"yp" = ( +/obj/structure/stairs{ + dir = null + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"yq" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"yr" = ( +/obj/structure/bed/chair/office/dark/west, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"ys" = ( +/obj/structure/rock/basalt{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"yt" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"yu" = ( +/turf/closed/wall/mineral/gold, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"yv" = ( +/obj/structure/sign/poster{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"yw" = ( +/obj/structure/rack, +/obj/item/toy/prize/honk, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"yx" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"yz" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"yA" = ( +/obj/structure/bed/chair/office/dark/west, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"yB" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"yC" = ( +/obj/structure/bed/chair, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"yD" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/cable, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"yE" = ( +/obj/structure/bed/chair/sofa/corsat/verticalmiddle, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"yF" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/terragov/north, +/area/campaign/tgmc_raiding/underground/command/east) +"yG" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"yH" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"yI" = ( +/obj/structure/prop/mainship/name_stencil/G, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"yJ" = ( +/obj/structure/prop/brokenvendor/brokenspecialistvendor/leader, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"yK" = ( +/obj/machinery/door/airlock/mainship/marine, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"yL" = ( +/obj/structure/closet, +/obj/item/storage/bible, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"yM" = ( +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"yN" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"yO" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"yP" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/prison/darkbrown{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"yR" = ( +/obj/structure/flora/desert/grass, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"yS" = ( +/obj/machinery/hydroponics/slashable, +/turf/open/floor/prison/green{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"yT" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"yU" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 2 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"yV" = ( +/obj/machinery/vending/security, +/turf/open/floor/mainship/red{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"yW" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground) +"yX" = ( +/obj/structure/sign/poster{ + dir = 4 + }, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security) +"yY" = ( +/obj/effect/spawner/random/engineering/structure/random_tank_holder, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"zb" = ( +/turf/open/floor/mainship/black/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"zc" = ( +/obj/machinery/light/small, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"zd" = ( +/obj/structure/bed/chair/sofa/corsat/left, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"ze" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/general/hallway) +"zf" = ( +/obj/structure/largecrate/supply/medicine/medkits, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"zg" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"zh" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"zi" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"zj" = ( +/obj/structure/flora/pottedplant/twentythree, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"zk" = ( +/obj/structure/sign/prop3{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"zl" = ( +/obj/effect/landmark/patrol_point/tgmc_23, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"zm" = ( +/obj/machinery/door/airlock/mainship/engineering/glass{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/orange/full, +/area/campaign/tgmc_raiding/underground/engineering) +"zn" = ( +/obj/effect/spawner/random/engineering/shovel, +/obj/structure/rack, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"zo" = ( +/obj/structure/table/mainship, +/obj/item/tool/analyzer, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"zq" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison/darkbrown{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"zr" = ( +/obj/structure/desertdam/decals/road{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"zs" = ( +/obj/structure/bookcase, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"zt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"zw" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"zy" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"zz" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"zA" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"zB" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"zC" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"zD" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"zE" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"zF" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"zH" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"zJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"zK" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"zM" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"zN" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green, +/area/campaign/tgmc_raiding/underground/living/barracks) +"zO" = ( +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"zP" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"zQ" = ( +/turf/open/floor/prison/green/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"zR" = ( +/obj/structure/table/mainship, +/obj/item/toy/plush/carp, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"zS" = ( +/obj/machinery/door/airlock/multi_tile/mainship/engineering/glass{ + dir = 1 + }, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"zT" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"zU" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"zV" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"zW" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"zZ" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"Aa" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"Ab" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Ac" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Ad" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Ae" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Af" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Ag" = ( +/obj/structure/ship_ammo/cas/minirocket/illumination, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Ah" = ( +/obj/structure/showcase, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Ai" = ( +/obj/structure/closet/radiation, +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Aj" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Ak" = ( +/obj/structure/desertdam/decals/road{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"Al" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"An" = ( +/obj/machinery/door/window/secure, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Ao" = ( +/turf/open/floor/prison/darkred{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Ap" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Aq" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 8 + }, +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Ar" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"As" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"At" = ( +/obj/structure/sign/poster{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Au" = ( +/obj/structure/table, +/obj/effect/spawner/random/misc/earmuffs, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Av" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Aw" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Ax" = ( +/turf/open/floor/carpet/orange, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Az" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"AA" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"AC" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"AD" = ( +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"AE" = ( +/obj/machinery/vending/snack, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"AF" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"AG" = ( +/obj/structure/rock/basalt/pile/alt2, +/turf/open/floor/plating/ground/mars/random/dirt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"AH" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"AI" = ( +/obj/structure/stairs/corner_seamless{ + dir = 8 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"AJ" = ( +/obj/structure/sign/poster{ + dir = 1 + }, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"AK" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"AL" = ( +/obj/structure/cargo_container/green{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"AM" = ( +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"AN" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"AO" = ( +/obj/structure/stairs/seamless{ + dir = 8 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"AP" = ( +/obj/structure/barricade/metal{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"AR" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command) +"AS" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"AT" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"AU" = ( +/obj/structure/prop/brokenvendor/engivend, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"AV" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"AW" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"AX" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Ba" = ( +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Bb" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Bc" = ( +/obj/structure/desertdam/decals/road, +/obj/structure/prop/vehicle/truck{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Bd" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Be" = ( +/obj/structure/flora/tree/joshua, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Bf" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"Bg" = ( +/obj/structure/closet/radiation, +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Bi" = ( +/obj/effect/spawner/random/engineering/tool, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Bj" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Bk" = ( +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Bl" = ( +/obj/structure/curtain/medical, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"Bm" = ( +/obj/structure/table, +/obj/item/alienjar, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Bo" = ( +/obj/structure/table/mainship, +/obj/machinery/cell_charger, +/obj/machinery/light, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"Bq" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/bread, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Br" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"Bs" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Bt" = ( +/obj/item/trash/candle, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Bu" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/cargo) +"Bv" = ( +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Bw" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = 3 + }, +/obj/item/paper{ + pixel_y = 4 + }, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"By" = ( +/obj/structure/prop/brokenvendor/brokencorpsmanvendor, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Bz" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"BA" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"BB" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"BD" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"BE" = ( +/obj/structure/monorail, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"BG" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"BH" = ( +/turf/open/floor/mainship/blue/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"BJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"BL" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"BM" = ( +/obj/machinery/door/airlock/mainship/medical/free_access, +/turf/open/floor/mainship/sterile, +/area/campaign/tgmc_raiding/underground/medbay) +"BN" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"BO" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"BP" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"BQ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"BR" = ( +/obj/structure/table/gamblingtable, +/obj/item/toy/deck, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"BS" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"BT" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"BU" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"BW" = ( +/obj/item/storage/bag/trash, +/obj/structure/rack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"BX" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"BY" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"BZ" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Ca" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Cb" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Cd" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Ce" = ( +/obj/machinery/door/airlock/multi_tile/mainship/secdoor, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Cf" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"Cg" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Ch" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"Ci" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"Cj" = ( +/turf/open/floor/mainship/cargo/arrow{ + dir = 0 + }, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Ck" = ( +/obj/machinery/vending/cola, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"Cl" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Cm" = ( +/obj/structure/table, +/obj/machinery/door/window/secure{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Cn" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Cp" = ( +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Cq" = ( +/obj/structure/table/reinforced, +/obj/item/defibrillator, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"Cr" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"Cs" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/mainship/sterile/corner, +/area/campaign/tgmc_raiding/underground/medbay) +"Ct" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Cu" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"Cv" = ( +/obj/structure/bed/chair/comfy, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Cw" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Cx" = ( +/obj/structure/sign/restroom, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Cy" = ( +/obj/machinery/computer3/server, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Cz" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"CB" = ( +/obj/effect/landmark/patrol_point/som/som_14, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"CC" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command) +"CD" = ( +/obj/effect/turf_decal/riverdecal, +/obj/item/trash/cigbutt, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"CF" = ( +/obj/structure/bed/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"CG" = ( +/obj/structure/bookcase/manuals, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"CH" = ( +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"CI" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"CK" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"CL" = ( +/obj/machinery/door/poddoor, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"CM" = ( +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"CN" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"CO" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"CQ" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"CR" = ( +/obj/structure/table/woodentable, +/obj/effect/spawner/random/misc/plushie/nospawnninetynine, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"CV" = ( +/obj/structure/prop/mainship/mission_planning_system{ + desc = "This gathers all information about the Self-Destruct and pools it into one repository."; + name = "self destruct information tower" + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"CW" = ( +/obj/structure/largecrate/random, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"CX" = ( +/obj/structure/rack, +/obj/item/storage/belt/utility/full, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"CY" = ( +/obj/structure/desertdam/decals/road, +/obj/structure/prop/vehicle/truck/truckcargo{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"CZ" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"Da" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Db" = ( +/obj/machinery/door/airlock/mainship/generic, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Dc" = ( +/obj/structure/sign/poster{ + dir = 1 + }, +/turf/open/floor/prison/yellow/corner, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Dd" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Df" = ( +/obj/structure/sink, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Dg" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Di" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/stairs/railstairs_vert{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Dj" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"Dk" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Dl" = ( +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Dm" = ( +/obj/machinery/vending/snack, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Dn" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Dp" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Dq" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison/darkred{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Dr" = ( +/obj/structure/prop/brokenvendor/brokenspecialistvendor/leader, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Ds" = ( +/obj/machinery/door/airlock/multi_tile/mainship/comdoor/free_access, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Dt" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Du" = ( +/obj/structure/bed/chair/sofa/right{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Dv" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"Dw" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Dx" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"Dy" = ( +/obj/structure/barricade/guardrail, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Dz" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"DA" = ( +/obj/structure/sink{ + dir = 4 + }, +/obj/structure/mirror{ + dir = 8 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"DB" = ( +/obj/structure/table, +/obj/effect/spawner/random/medical/pillbottle, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"DC" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"DE" = ( +/obj/structure/bed/stool, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"DF" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/threeside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"DG" = ( +/obj/structure/rack, +/obj/item/toy/inflatable_duck, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"DH" = ( +/obj/structure/table/fancywoodentable, +/obj/machinery/computer/emails{ + density = 0 + }, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"DI" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"DJ" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"DK" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"DL" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"DM" = ( +/obj/structure/stairs{ + dir = null + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"DN" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"DO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"DQ" = ( +/obj/structure/prop/mainship/sensor_computer1, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"DR" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison/green{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"DS" = ( +/obj/structure/rack, +/obj/effect/spawner/random/weaponry/explosive/plastiqueexplosive/multiple/four, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"DT" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"DU" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"DV" = ( +/obj/effect/decal/cleanable/cobweb2, +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"DW" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"DX" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/standard_autoshotgun, +/turf/open/floor/prison/darkred{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"DY" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"DZ" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Ea" = ( +/obj/structure/bed/chair/sofa/corsat/verticaltop, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Eb" = ( +/obj/effect/landmark/patrol_point/som/som_22, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Ed" = ( +/obj/structure/cargo_container/hd, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Ee" = ( +/obj/structure/closet/secure_closet/captain, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"Ef" = ( +/obj/structure/flora/drought/tall_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"Eg" = ( +/obj/machinery/door/airlock/mainship/security/glass, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Eh" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Ei" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"Ej" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Ek" = ( +/obj/machinery/door/airlock/multi_tile/mainship/blackgeneric/glass{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"El" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Em" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"En" = ( +/obj/machinery/computer3, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"Eo" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"Ep" = ( +/obj/machinery/hydroponics/slashable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"Eq" = ( +/obj/structure/kitchenspike, +/obj/item/reagent_containers/food/snacks/meat{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"Er" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Es" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"Et" = ( +/obj/structure/ship_ammo/cas/rocket/napalm, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Eu" = ( +/obj/structure/cable, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"Ev" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Ew" = ( +/obj/machinery/telecomms/relay/preset/telecomms, +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground) +"Ex" = ( +/obj/effect/spawner/random/misc/plant, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"Ey" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Ez" = ( +/turf/open/floor/mainship/green/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"EA" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/colony/indoor/station) +"EB" = ( +/obj/machinery/hydroponics/slashable, +/turf/open/floor/prison/green/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"EC" = ( +/obj/structure/rack, +/obj/item/toy/prize, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"ED" = ( +/obj/structure/flora/drought/tall_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"EE" = ( +/obj/structure/table/mainship, +/obj/item/attachable/bayonet, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"EF" = ( +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"EH" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"EI" = ( +/obj/item/tool/pickaxe/drill, +/obj/structure/rack, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"EJ" = ( +/obj/machinery/door/airlock/multi_tile/mainship/secdoor{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"EK" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/prison/darkred{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"EL" = ( +/obj/structure/bed/chair/sofa{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"EM" = ( +/obj/structure/sign/poster{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"EO" = ( +/obj/structure/prop/mainship/sensor_computer1, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command) +"EP" = ( +/obj/machinery/door/airlock/prison/open, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"EQ" = ( +/obj/structure/flora/desert/grass, +/obj/structure/flora/desert/grass, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"ER" = ( +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"ES" = ( +/turf/open/floor/mainship/red/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"ET" = ( +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"EV" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"EW" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"EX" = ( +/obj/item/weapon/gun/sentry/big_sentry/premade/radial, +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"EZ" = ( +/obj/structure/bed/chair/sofa/right{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Fa" = ( +/turf/open/floor/carpet/green, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Fb" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"Fc" = ( +/obj/structure/desertdam/decals/road{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Fd" = ( +/obj/structure/table/reinforced, +/obj/item/healthanalyzer, +/obj/effect/spawner/random/medical/pillbottle, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Fe" = ( +/obj/structure/table, +/obj/effect/spawner/random/food_or_drink, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Fg" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Fh" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Fi" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/mars/random/dirt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"Fj" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Fk" = ( +/turf/open/floor/mainship/green/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Fl" = ( +/obj/structure/table, +/obj/item/clothing/head/collectable/tophat, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"Fm" = ( +/obj/machinery/light, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Fn" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Fo" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/prison/darkred{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Fp" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Fq" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkred/corners{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Fr" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Fs" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"Ft" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"Fu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Fw" = ( +/obj/structure/prop/brokenvendor/surplusarmor, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Fx" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Fy" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"Fz" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkred{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"FA" = ( +/obj/structure/sink{ + dir = 4 + }, +/obj/structure/mirror{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"FB" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"FC" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"FD" = ( +/obj/machinery/vending/security, +/turf/open/floor/mainship/red{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/security) +"FE" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"FF" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/prison/darkbrown{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"FH" = ( +/obj/machinery/door_control{ + dir = 8; + id = "Train-Mechanic-Storage" + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"FI" = ( +/obj/effect/turf_decal/riverdecal, +/obj/structure/stairs/railstairs_vert{ + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"FJ" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"FK" = ( +/obj/item/trash/berrybar, +/obj/structure/cable, +/turf/open/floor/plating/dmg1, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"FL" = ( +/turf/open/floor/prison/darkred, +/area/campaign/tgmc_raiding/colony/indoor/security) +"FM" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"FN" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"FO" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"FP" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"FR" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"FS" = ( +/obj/structure/closet/walllocker/hydrant/extinguisher, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"FT" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/emails{ + density = 0 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"FU" = ( +/obj/structure/table/mainship, +/obj/item/explosive/grenade/smokebomb, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security) +"FV" = ( +/obj/machinery/vending/MarineMed/Blood, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"FW" = ( +/obj/structure/prop/brokenvendor/brokenuniformvendor/specialist, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"FX" = ( +/obj/structure/monorail, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"FY" = ( +/obj/structure/prop/brokenvendor/brokenweaponsrack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"FZ" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/security) +"Ga" = ( +/obj/structure/stairs/seamless{ + dir = 4 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Gb" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/prison/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"Gc" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Ge" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Gf" = ( +/obj/structure/table/mainship, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"Gh" = ( +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Gi" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"Gj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Gk" = ( +/obj/structure/closet/fireaxecabinet, +/turf/closed/shuttle/escapeshuttle, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Gl" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/twoside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"Gm" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Gn" = ( +/obj/machinery/vending/MarineMed/Blood, +/obj/machinery/light, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"Go" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Gp" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Gq" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"Gr" = ( +/obj/structure/prop/mainship/sensor_computer2, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Gs" = ( +/obj/structure/table/black, +/obj/machinery/computer3/server, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Gt" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Gu" = ( +/obj/structure/grille, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Gv" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Gw" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Gy" = ( +/turf/closed/wall/r_wall/chigusa, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Gz" = ( +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"GA" = ( +/obj/structure/prop/mainship/name_stencil/M, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"GB" = ( +/turf/open/floor/tile/chapel, +/area/campaign/tgmc_raiding/underground/living/chapel) +"GC" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"GD" = ( +/obj/machinery/door/airlock/mainship/generic/glass, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"GE" = ( +/obj/structure/flora/pottedplant/twentytwo, +/turf/open/floor/mainship/red{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/security) +"GF" = ( +/turf/open/floor/prison/darkbrown{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"GG" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/platform, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"GH" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison/darkbrown{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"GI" = ( +/obj/structure/window/framed/mainship/gray/toughened, +/obj/structure/platform, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"GK" = ( +/obj/structure/sign/electricshock{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"GL" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/mainship/orange{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"GM" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"GN" = ( +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"GO" = ( +/obj/structure/rock/basalt/alt3{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"GP" = ( +/turf/open/floor/plating/dmg1, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"GQ" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"GR" = ( +/obj/effect/spawner/random/misc/trash, +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"GS" = ( +/turf/open/floor/carpet/red, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"GU" = ( +/obj/structure/cargo_container/horizontal{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"GV" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"GW" = ( +/obj/machinery/door/airlock/mainship/command/free_access, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"GX" = ( +/obj/structure/table/black, +/obj/machinery/computer3/server, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"GY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Ha" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/sign/poster{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Hb" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/red{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/security) +"Hc" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Hd" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"He" = ( +/obj/structure/cable, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command) +"Hf" = ( +/obj/structure/rock/basalt{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Hg" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/boxing) +"Hh" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Hi" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Hj" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Hk" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Hl" = ( +/obj/structure/monorail, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Hm" = ( +/obj/structure/prop/mainship/sensor_computer3, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Hn" = ( +/obj/structure/table, +/obj/effect/spawner/random/medical/pillbottle, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"Ho" = ( +/obj/structure/closet/wardrobe, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Hp" = ( +/obj/effect/spawner/random/misc/structure/supplycrate, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"Hq" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Hr" = ( +/obj/structure/table/mainship, +/obj/item/flashlight/lamp{ + pixel_x = 8; + pixel_y = 11 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"Hs" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"Ht" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"Hu" = ( +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Hv" = ( +/obj/structure/table/mainship, +/obj/item/storage/donut_box, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"Hw" = ( +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"Hx" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Hy" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Hz" = ( +/turf/open/floor/cult, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"HA" = ( +/obj/structure/table/mainship, +/obj/machinery/computer/security{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"HB" = ( +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"HC" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"HD" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"HE" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"HF" = ( +/obj/structure/bed/chair/sofa{ + dir = 8 + }, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"HG" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"HH" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command) +"HI" = ( +/obj/structure/rack, +/obj/effect/spawner/random/food_or_drink/packagedbar/candyweighted, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"HJ" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"HL" = ( +/obj/structure/table/fancywoodentable, +/obj/item/storage/bible/booze, +/obj/item/reagent_containers/food/drinks/britcup, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"HM" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"HN" = ( +/obj/structure/prop/mainship/sensor_computer1, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"HO" = ( +/obj/machinery/door/airlock/mainship/security/glass{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"HT" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"HU" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"HV" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/chapel) +"HW" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"HX" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"HZ" = ( +/obj/machinery/photocopier, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"Ia" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Ic" = ( +/obj/structure/table/mainship, +/obj/item/trash/candle, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Id" = ( +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Ie" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/security) +"If" = ( +/obj/machinery/faxmachine, +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command) +"Ig" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"Ii" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/obj/structure/sign/nosmoking_2{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Ij" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Il" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Im" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"In" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Io" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Ip" = ( +/obj/structure/table/mainship, +/obj/item/packageWrap, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Iq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Is" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"It" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"Iu" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/cigar, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Iw" = ( +/obj/structure/largecrate/supply/medicine/medkits, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Iy" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command) +"Iz" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/mainship/green{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"IA" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"IB" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"IC" = ( +/turf/open/floor/prison/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"ID" = ( +/obj/item/weapon/gun/smg/m25, +/obj/structure/closet/secure_closet/guncabinet, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"IE" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"IF" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"IG" = ( +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"IH" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/command/captain) +"II" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"IK" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security) +"IL" = ( +/turf/open/floor/prison/darkbrown, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"IM" = ( +/obj/machinery/photocopier, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"IN" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"IO" = ( +/obj/structure/flora/drought/barrel_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"IP" = ( +/obj/structure/table/mainship, +/obj/item/weapon/gun/revolver/standard_revolver, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"IQ" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"IR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/stairs/railstairs_vert{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"IS" = ( +/obj/structure/largecrate/random, +/obj/effect/decal/cleanable/cobweb2, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"IT" = ( +/obj/structure/prop/vehicle/van{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"IV" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"IW" = ( +/turf/open/floor/mainship/green{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"IX" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"IY" = ( +/obj/structure/ship_ammo/cas/rocket/widowmaker, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"IZ" = ( +/obj/machinery/light, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"Ja" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Jb" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison/bright_clean, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"Jc" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Jd" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Je" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"Jf" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Jh" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/monorail{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Ji" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Jj" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"Jk" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Jl" = ( +/obj/structure/table/mainship, +/obj/item/restraints/handcuffs, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"Jn" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/door/window{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"Jo" = ( +/obj/effect/landmark/patrol_point/tgmc_11, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Jp" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Jq" = ( +/obj/structure/flora/desert/bush, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Jr" = ( +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Ju" = ( +/obj/structure/ship_ammo/cas/rocket/banshee, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Jv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Jw" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Jx" = ( +/obj/structure/sign/restroom{ + dir = 4 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Jy" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"Jz" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"JB" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"JC" = ( +/obj/machinery/washing_machine, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"JD" = ( +/obj/structure/bookcase, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"JE" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"JF" = ( +/turf/open/floor/mainship/black/corner, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"JG" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"JH" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"JI" = ( +/obj/structure/table/woodentable, +/obj/item/reagent_containers/food/drinks/flask/barflask, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"JJ" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"JK" = ( +/obj/structure/rock/basalt/pile, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"JL" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"JM" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"JN" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"JO" = ( +/obj/structure/barricade/guardrail, +/obj/structure/barricade/guardrail{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"JP" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/command) +"JQ" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"JR" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway) +"JU" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"JV" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"JW" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"JX" = ( +/obj/item/trash/chips, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"JY" = ( +/obj/structure/sign/prop4{ + dir = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"JZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Ka" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/prison/darkbrown{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Kb" = ( +/obj/structure/table/mainship, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Kc" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/tile/chapel, +/area/campaign/tgmc_raiding/underground/living/chapel) +"Kd" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"Ke" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/engibelt, +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Kf" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Kg" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Kh" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Ki" = ( +/obj/structure/rack, +/obj/item/storage/toolbox, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Kj" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Kk" = ( +/obj/structure/largecrate/random, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Kl" = ( +/obj/structure/prop/brokenvendor/brokenspecialistvendor/corpsman, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Km" = ( +/obj/structure/table/mainship, +/obj/item/reagent_containers/food/drinks/dry_ramen, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Kn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"Ko" = ( +/obj/machinery/power/monitor, +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Kp" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic/personal, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"Kq" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Kr" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/cargo) +"Ks" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Kt" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 2 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Ku" = ( +/obj/machinery/light, +/turf/open/floor/mainship/red, +/area/campaign/tgmc_raiding/underground/security) +"Kv" = ( +/obj/structure/grille, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Kw" = ( +/obj/structure/platform_decoration, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Kx" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Ky" = ( +/obj/machinery/vending/tool, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"Kz" = ( +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"KA" = ( +/obj/machinery/door_control{ + dir = 4; + id = "Train-Mechanic-Storage" + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"KB" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"KD" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"KE" = ( +/obj/structure/window/reinforced/tinted/frosted{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/command/captain) +"KF" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"KG" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"KH" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"KI" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"KJ" = ( +/obj/item/bedsheet, +/obj/structure/bed, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"KK" = ( +/obj/structure/flora/drought/tall_cactus, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"KL" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"KM" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"KN" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"KO" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/item/storage/box/gloves{ + pixel_x = -5; + pixel_y = -5 + }, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"KP" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"KQ" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"KR" = ( +/obj/structure/prop/vehicle/truck{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"KS" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"KT" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"KV" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"KW" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"KX" = ( +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"KY" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"KZ" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/monorail{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"La" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/cans/cola, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"Lb" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison/darkbrown{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Le" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/paper{ + pixel_x = 5 + }, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Lf" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Lg" = ( +/obj/structure/cable, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"Lh" = ( +/obj/structure/prop/mainship/mapping_computer, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command) +"Li" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Lj" = ( +/obj/structure/table/mainship, +/obj/item/restraints/handcuffs, +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security) +"Lk" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/prison/darkbrown, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Ll" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Lm" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Ln" = ( +/obj/structure/table/woodentable, +/obj/item/book/manual/barman_recipes, +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"Lo" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Lp" = ( +/obj/structure/table/gamblingtable, +/obj/item/coin/silver, +/obj/item/coin/gold{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Lq" = ( +/obj/structure/cable, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Lr" = ( +/obj/structure/largecrate/supply/generator, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Ls" = ( +/turf/open/floor/mainship/blue/full, +/area/campaign/tgmc_raiding/underground/living/boxing) +"Lt" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Lu" = ( +/obj/structure/rack, +/obj/item/toy/prize/gygax, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Lv" = ( +/obj/structure/prop/vehicle/crane{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Lw" = ( +/obj/machinery/optable, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Lx" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"Ly" = ( +/obj/structure/sink, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Lz" = ( +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"LB" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"LC" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/general/prep) +"LD" = ( +/turf/open/floor/mainship/red/full, +/area/campaign/tgmc_raiding/underground/living/boxing) +"LG" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"LH" = ( +/obj/structure/table/mainship, +/obj/machinery/faxmachine, +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security) +"LJ" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/prison/darkbrown, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"LK" = ( +/obj/structure/prop/mainship/sensor_computer2, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"LL" = ( +/obj/machinery/door/airlock/multi_tile/mainship/medidoor, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"LM" = ( +/obj/structure/sign/electricshock{ + dir = 8 + }, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"LN" = ( +/obj/structure/barricade/guardrail, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"LP" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"LQ" = ( +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"LR" = ( +/obj/structure/prop/mainship/mission_planning_system{ + desc = "This gathers all information about the Self-Destruct and pools it into one repository."; + name = "self destruct information tower" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"LS" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"LT" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"LU" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"LV" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"LW" = ( +/obj/structure/sink, +/obj/structure/mirror, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"LX" = ( +/obj/effect/landmark/patrol_point/som/som_21, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"LZ" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Ma" = ( +/obj/machinery/light, +/turf/open/floor/prison/yellow/corner, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Mb" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/prison/darkbrown{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Mc" = ( +/obj/machinery/door/airlock/mainship/command/free_access, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"Me" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"Mf" = ( +/obj/structure/bed/chair/sofa/corsat/right, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Mg" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Mh" = ( +/obj/machinery/bodyscanner, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"Mi" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/donut, +/turf/open/floor/mainship/red{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/security) +"Mj" = ( +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Mk" = ( +/obj/machinery/door_control{ + dir = 1; + id = "Security-Armory" + }, +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security) +"Ml" = ( +/obj/machinery/door/poddoor, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Mn" = ( +/turf/open/floor/mainship/terragov{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Mo" = ( +/obj/effect/landmark/patrol_point/som/som_11, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Mp" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Mq" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Mr" = ( +/obj/structure/bed/stool, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Ms" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Mt" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Mu" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/firstaid{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/spawner/random/medical/firstaid, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"Mv" = ( +/obj/structure/sign/prop1{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"Mw" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"My" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Mz" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 2 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"MA" = ( +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"MB" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"MC" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"MD" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"ME" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"MF" = ( +/obj/structure/table, +/obj/machinery/computer/secure_data, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"MG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"MH" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"MI" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"MJ" = ( +/obj/structure/rack, +/obj/item/toy/prize/deathripley, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"MK" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"ML" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"MM" = ( +/obj/structure/ship_ammo/cas/minirocket, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"MN" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"MO" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison/darkbrown/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"MP" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/tile/chapel{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"MQ" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"MR" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"MS" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/mainship/orange{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"MT" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"MU" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground) +"MV" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/cans/waterbottle, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"MW" = ( +/obj/structure/bookcase, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"MX" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"MY" = ( +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"MZ" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Na" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Nb" = ( +/obj/structure/table/woodentable, +/obj/effect/spawner/random/misc/paperbin, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"Nc" = ( +/obj/structure/bed/chair/wood/normal, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"Nd" = ( +/obj/structure/table/gamblingtable, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Ne" = ( +/obj/structure/prop/mainship/sensor_computer3, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"Nf" = ( +/obj/structure/table/reinforced, +/obj/item/bodybag/cryobag, +/turf/open/floor/mainship/sterile/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Ng" = ( +/obj/structure/bed/chair/sofa/corsat/verticalmiddle, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Nh" = ( +/obj/structure/sign/poster{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Nj" = ( +/obj/item/paper/crumpled, +/obj/item/paper/crumpled{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/trash/cigbutt, +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Nl" = ( +/turf/open/floor/prison/darkred{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Nm" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Nn" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"No" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/pizzapasta/raw, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Np" = ( +/obj/machinery/door/airlock/mainship/security/glass, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"Nq" = ( +/obj/machinery/photocopier, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"Ns" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/prison/darkbrown/corner, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Nt" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Nu" = ( +/obj/structure/rack, +/obj/effect/spawner/random/weaponry/explosive/grenade/multiplefour, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Nv" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Nw" = ( +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Nx" = ( +/obj/structure/platform, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Ny" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"Nz" = ( +/turf/open/floor/carpet/royalblack, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"NB" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"NC" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"ND" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"NE" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"NF" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"NG" = ( +/obj/structure/table/fancywoodentable, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"NH" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"NJ" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"NK" = ( +/obj/structure/barricade/guardrail, +/obj/structure/barricade/guardrail{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"NL" = ( +/obj/machinery/door/airlock/multi_tile/mainship/personalglass, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"NM" = ( +/obj/structure/sink{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"NN" = ( +/turf/open/floor/mainship/blue/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"NO" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"NP" = ( +/obj/machinery/door/airlock/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"NQ" = ( +/obj/structure/bed/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"NR" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/engineering/powercell, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"NT" = ( +/turf/open/floor/mainship/black/corner, +/area/campaign/tgmc_raiding/underground/general/hallway) +"NU" = ( +/obj/structure/table, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"NV" = ( +/obj/structure/table, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"NX" = ( +/turf/open/floor/mainship/cargo/arrow{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/station) +"NZ" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"Oa" = ( +/turf/open/floor/mainship/black/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"Ob" = ( +/obj/structure/platform, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Oc" = ( +/turf/open/floor/mainship/purple/full, +/area/campaign/tgmc_raiding/underground/living/boxing) +"Od" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison/darkbrown{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Oe" = ( +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Of" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Og" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/window_frame/colony, +/obj/item/shard, +/turf/open/floor/plating/dmg1, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Oh" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"Oi" = ( +/obj/machinery/door/airlock/multi_tile/mainship/blackgeneric/glass, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Oj" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison/darkbrown{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Ol" = ( +/obj/machinery/griddle, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Om" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"On" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Oo" = ( +/obj/structure/sign/poster, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Op" = ( +/obj/structure/barricade/metal{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"Oq" = ( +/obj/effect/turf_decal/riverdecal, +/obj/structure/stairs/railstairs{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Or" = ( +/obj/structure/prop/vehicle/van, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"Os" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkbrown{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Ot" = ( +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Ou" = ( +/obj/effect/spawner/random/misc/trash, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"Ov" = ( +/obj/structure/platform_decoration{ + dir = 5 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Ow" = ( +/obj/structure/table/mainship, +/obj/item/flash, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"Ox" = ( +/obj/machinery/door/airlock/mainship/security, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Oy" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Oz" = ( +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"OA" = ( +/obj/machinery/door/airlock/multi_tile/mainship/comdoor/free_access{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"OC" = ( +/turf/open/floor/prison/kitchen, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"OD" = ( +/obj/structure/table, +/obj/structure/xenoautopsy, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"OE" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"OG" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"OH" = ( +/obj/effect/spawner/random/engineering/extinguisher, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"OI" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"OJ" = ( +/obj/machinery/door/airlock/multi_tile/mainship/comdoor/free_access{ + dir = 2 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"OL" = ( +/obj/structure/bed/chair/sofa/corsat/verticalsouth, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"OM" = ( +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/prison/darkbrown{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"ON" = ( +/turf/open/floor/mainship/black/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"OO" = ( +/obj/machinery/door/airlock/multi_tile/mainship/comdoor/free_access{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"OP" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison/darkbrown{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"OQ" = ( +/obj/structure/bed/chair/sofa/corsat/left, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/colony/indoor/station) +"OS" = ( +/obj/effect/spawner/random/engineering/tool, +/obj/structure/rack, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"OT" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"OV" = ( +/obj/structure/table, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"OW" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"OY" = ( +/obj/machinery/power/smes/buildable/empty, +/obj/structure/cable, +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"OZ" = ( +/obj/structure/table/mainship, +/obj/item/book/manual/marine_law, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Pa" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Pb" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic/personal, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Pc" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/food_or_drink/sugary_snack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Pe" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Pf" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Pg" = ( +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Ph" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/pillbottle, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Pj" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/captain) +"Pl" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Pm" = ( +/obj/structure/desertdam/decals/road{ + dir = 8 + }, +/obj/structure/prop/vehicle/crawler/crawler_blue, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"Pn" = ( +/obj/item/target/default, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Pp" = ( +/obj/structure/cargo_container/nt, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Ps" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"Pt" = ( +/obj/structure/table/mainship, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Pu" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"Pv" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"Pw" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Px" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"Py" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Pz" = ( +/obj/machinery/vending/cigarette/colony, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"PA" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/living/offices) +"PB" = ( +/obj/structure/stairs/railstairs{ + dir = 1 + }, +/obj/effect/turf_decal/riverdecal, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"PC" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"PD" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"PE" = ( +/obj/structure/table, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"PG" = ( +/turf/closed/shuttle/escapeshuttle, +/area/campaign/tgmc_raiding/colony/indoor/station) +"PH" = ( +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"PI" = ( +/obj/machinery/door/airlock/multi_tile/mainship/comdoor/free_access{ + dir = 2 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"PJ" = ( +/turf/open/floor/prison/green/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"PL" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"PM" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"PN" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/command/east) +"PO" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/adv, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"PP" = ( +/obj/structure/platform_decoration, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"PQ" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"PS" = ( +/obj/effect/spawner/random/misc/gnome, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/living/boxing) +"PT" = ( +/obj/structure/rack, +/obj/item/flash, +/turf/open/floor/prison/darkred{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"PU" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"PV" = ( +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/living/barracks) +"PW" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/general/hallway) +"PX" = ( +/obj/structure/desertdam/decals/road, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"PY" = ( +/obj/structure/flora/tree/joshua, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"PZ" = ( +/obj/machinery/door/airlock/multi_tile/mainship/maint/free_access{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"Qa" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Qb" = ( +/obj/structure/cargo_container/horizontal, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Qc" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Qe" = ( +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Qf" = ( +/obj/item/flashlight, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Qg" = ( +/obj/machinery/power/fusion_engine/preset, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"Qh" = ( +/obj/structure/largecrate/supply/weapons/standard_smg, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Qi" = ( +/obj/structure/table, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"Qj" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Qk" = ( +/obj/structure/table, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Qm" = ( +/turf/open/floor/mainship/green/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Qo" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/prison/darkbrown/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Qp" = ( +/obj/structure/sign/poster{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Qr" = ( +/obj/item/trash/chips, +/obj/item/paper/crumpled, +/obj/item/paper/crumpled{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Qs" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Qt" = ( +/obj/structure/rack, +/obj/item/storage/box/snappops, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Qu" = ( +/obj/structure/bed/chair/sofa/right, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"Qv" = ( +/turf/closed/mineral/smooth/indestructible, +/area/campaign/tgmc_raiding/underground) +"Qw" = ( +/obj/machinery/light, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Qx" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/prison/darkbrown/corner, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Qy" = ( +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"QA" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"QB" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/blue{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"QC" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/cargo) +"QD" = ( +/obj/structure/largecrate/supply/supplies, +/obj/effect/decal/cleanable/cobweb2, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"QE" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"QF" = ( +/obj/machinery/line_nexter{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"QG" = ( +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"QH" = ( +/obj/structure/closet/secure_closet/medical3/colony, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"QI" = ( +/obj/item/trash/chips, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"QK" = ( +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"QL" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command) +"QM" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/prison/darkbrown{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"QN" = ( +/obj/effect/landmark/patrol_point/tgmc_12, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"QO" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"QP" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/extinguisher, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"QQ" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"QR" = ( +/obj/structure/table, +/obj/item/toy/plush/lizard, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"QS" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"QT" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"QU" = ( +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"QV" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/indoor/station) +"QW" = ( +/obj/structure/table, +/obj/machinery/computer/pod/old{ + name = "Register" + }, +/turf/open/floor/prison/yellow/corner, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"QX" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"QY" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"QZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Ra" = ( +/obj/item/trash/candle, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Rb" = ( +/turf/open/floor/prison/darkbrown/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Rc" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Rd" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"Re" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/security) +"Rf" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/tile/chapel, +/area/campaign/tgmc_raiding/underground/living/chapel) +"Rh" = ( +/turf/open/floor/plating/ground/mars/dirttosand/autosmooth, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"Ri" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"Rj" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Rk" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Rl" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/engibelt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"Rm" = ( +/obj/machinery/light, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Rn" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Ro" = ( +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Rp" = ( +/obj/structure/bed/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"Rq" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"Rr" = ( +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Rt" = ( +/obj/structure/prop/brokenvendor/brokenspecialistvendor/engineer, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Ru" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic/noglass{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"Rv" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/health_analyzer, +/turf/open/floor/mainship/sterile/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Rx" = ( +/obj/structure/barricade/guardrail{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Ry" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command) +"Rz" = ( +/obj/structure/cargo_container/ch_red, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"RA" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/command/east) +"RD" = ( +/obj/structure/bed/chair/office/dark/east, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"RE" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) +"RH" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"RI" = ( +/turf/open/floor/mainship/yellow_cargo, +/area/campaign/tgmc_raiding/underground/general/prep) +"RJ" = ( +/obj/structure/cable, +/turf/open/floor/tile/chapel, +/area/campaign/tgmc_raiding/underground/living/chapel) +"RL" = ( +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"RM" = ( +/obj/structure/flora/desert/bush, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"RN" = ( +/obj/machinery/vending/snack, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"RO" = ( +/obj/structure/table/mainship, +/obj/machinery/microwave, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"RP" = ( +/obj/machinery/hydroponics/slashable, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison/green{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"RQ" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"RS" = ( +/obj/structure/table/mainship, +/obj/item/storage/donut_box, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"RT" = ( +/obj/structure/ship_ammo/cas/heavygun, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"RU" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"RV" = ( +/obj/structure/mopbucket, +/obj/item/tool/mop, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"RW" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"RX" = ( +/obj/structure/table/woodentable, +/obj/item/clothing/shoes/cowboy, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"RY" = ( +/obj/structure/monorail{ + dir = 10 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"RZ" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Sa" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"Sb" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Sd" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security) +"Se" = ( +/obj/machinery/vending/cola, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Sg" = ( +/obj/structure/cable, +/turf/open/floor/prison/kitchen, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"Sh" = ( +/obj/structure/bed/chair/sofa/corsat/verticaltop, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Si" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Sj" = ( +/obj/structure/bed/chair, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Sk" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/colonist, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Sl" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/obj/structure/cable, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"Sm" = ( +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Sp" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Sq" = ( +/obj/structure/table/woodentable, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/grimy, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"Sr" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Ss" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"St" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Sv" = ( +/obj/machinery/computer3/server/rack, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Sw" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Sx" = ( +/obj/machinery/door/airlock/mainship/command/free_access, +/turf/open/floor/mainship/blue/full, +/area/campaign/tgmc_raiding/underground/command/east) +"Sy" = ( +/turf/open/floor/mainship/terragov{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"Sz" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"SA" = ( +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security) +"SB" = ( +/obj/structure/curtain/shower, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"SC" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"SD" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"SE" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/prison/darkred{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"SF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"SG" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"SH" = ( +/obj/structure/sign/engie{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"SI" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security) +"SJ" = ( +/obj/effect/spawner/random/misc/trash, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"SK" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"SL" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/mainship/red{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/security) +"SM" = ( +/obj/structure/largecrate/supply/medicine/blood, +/turf/open/floor/prison/darkbrown{ + dir = 1 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"SN" = ( +/obj/machinery/power/apc, +/obj/structure/cable, +/turf/open/floor/tile/chapel, +/area/campaign/tgmc_raiding/underground/living/chapel) +"SO" = ( +/obj/item/paper/crumpled{ + pixel_x = -5 + }, +/obj/item/paper/crumpled{ + pixel_y = 11 + }, +/obj/item/paper/crumpled{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/paper/crumpled{ + pixel_y = -5 + }, +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"SP" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"SQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"SR" = ( +/obj/structure/ship_ammo/cas/minirocket/incendiary, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"SS" = ( +/obj/structure/table/mainship, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ST" = ( +/obj/structure/monorail, +/turf/open/floor/plating/ground/desertdam/asphalt/twoside{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"SU" = ( +/obj/machinery/vending/marineFood, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"SV" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"SW" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/edge{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"SX" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"SY" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"SZ" = ( +/obj/machinery/vending/security, +/turf/open/floor/prison/darkred{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"Td" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Te" = ( +/obj/machinery/door/airlock/glass{ + dir = 2 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Tf" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison/darkbrown/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Tg" = ( +/obj/structure/table/fancywoodentable, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"Th" = ( +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Ti" = ( +/obj/machinery/vending/snack, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/blue{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Tj" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/mainship/green{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Tk" = ( +/obj/structure/table/woodentable, +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"Tl" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Tm" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkbrown/corner, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"To" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/orange{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Tp" = ( +/obj/structure/window/framed/mainship/gray, +/obj/structure/curtain/black, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"Tr" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"Ts" = ( +/obj/structure/barricade/guardrail{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Tt" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Tu" = ( +/obj/item/flashlight/lantern, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground) +"Tv" = ( +/obj/structure/table/mainship, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Tw" = ( +/obj/structure/desertdam/decals/road, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Ty" = ( +/obj/machinery/vending/MarineMed/Blood, +/turf/open/floor/mainship/sterile/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/medbay) +"Tz" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"TA" = ( +/obj/effect/landmark/patrol_point/tgmc_21, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"TB" = ( +/obj/structure/rack, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"TC" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"TD" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/prison/darkred{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"TE" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"TF" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/barracks) +"TG" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"TH" = ( +/obj/structure/barricade/guardrail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"TI" = ( +/obj/machinery/vending/security, +/turf/open/floor/prison/darkred{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"TJ" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"TK" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"TL" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/turf/open/floor/prison/bright_clean, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"TM" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"TN" = ( +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"TO" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/prison/darkbrown{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"TP" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"TQ" = ( +/obj/structure/rack, +/obj/item/toy/deck/kotahi, +/turf/open/floor/mainship/green{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"TR" = ( +/obj/structure/prop/vehicle/crane/destructible{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"TT" = ( +/obj/machinery/washing_machine, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"TU" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/riverdecal, +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"TV" = ( +/obj/structure/sign/securearea/firingrange{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"TY" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/kitchen) +"TZ" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Ua" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Ub" = ( +/obj/structure/table, +/obj/item/binoculars, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"Uc" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"Ud" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Ue" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Uf" = ( +/obj/effect/spawner/random/misc/structure/supplycrate/normalweighted, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Ug" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"Uh" = ( +/obj/structure/barricade/guardrail, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Ui" = ( +/obj/structure/platform_decoration{ + dir = 6 + }, +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"Uj" = ( +/obj/structure/table/mainship, +/obj/item/phone, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"Uk" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/prison/darkbrown{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Ul" = ( +/obj/machinery/door/airlock/multi_tile/mainship/maint/free_access, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Um" = ( +/obj/structure/prop/mainship/sensor_computer2, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"Un" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"Up" = ( +/obj/structure/rack, +/obj/item/toy/prize/durand, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Uq" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Ur" = ( +/obj/structure/bed/chair/sofa{ + dir = 1 + }, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"Uu" = ( +/obj/structure/monorail{ + dir = 5 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Uv" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Uw" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Uy" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"UA" = ( +/obj/effect/turf_decal/riverdecal, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/sewer) +"UB" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"UD" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light, +/turf/open/floor/mainship/black{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"UE" = ( +/obj/item/weapon/gun/sentry/big_sentry/premade/radial, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"UG" = ( +/obj/structure/cable, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"UI" = ( +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"UJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/black{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"UK" = ( +/obj/structure/table/gamblingtable, +/obj/item/paper{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"UL" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"UM" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"UO" = ( +/obj/structure/closet/bodybag, +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"UP" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"UQ" = ( +/obj/structure/bed/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"UR" = ( +/obj/structure/rack, +/obj/effect/spawner/random/misc/book, +/turf/open/floor/prison/marked, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"US" = ( +/obj/structure/prop/vehicle/van{ + dir = 4 + }, +/obj/structure/desertdam/decals/road/edge{ + dir = 2 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"UT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"UU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"UV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/stairs/railstairs{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"UW" = ( +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"UX" = ( +/obj/structure/rock/basalt/pile/alt, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"UY" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"UZ" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Va" = ( +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Vc" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Vd" = ( +/obj/structure/table/reinforced, +/obj/item/bodybag/cryobag, +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"Ve" = ( +/obj/structure/table, +/obj/machinery/computer/secure_data, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Vf" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/security) +"Vh" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/security) +"Vi" = ( +/obj/structure/prop/mainship/sensor_computer1, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command/east) +"Vj" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/powercell, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Vk" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Vl" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Vm" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Vn" = ( +/obj/structure/table, +/obj/machinery/computer/secure_data, +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Vo" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/stairs/railstairs_vert, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Vp" = ( +/obj/structure/ship_ammo/cas/bomb/moab, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Vq" = ( +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Vr" = ( +/obj/machinery/constructable_frame/state_2, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Vs" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Vt" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest) +"Vu" = ( +/obj/structure/rack, +/obj/item/toy/prize/fireripley, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Vv" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage) +"Vw" = ( +/obj/structure/desertdam/decals/road{ + dir = 1 + }, +/obj/structure/prop/vehicle/van{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Vx" = ( +/obj/structure/rock/basalt{ + name = "rock" + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"Vy" = ( +/obj/structure/bed/chair/sofa/corner, +/turf/open/floor/wood, +/area/campaign/tgmc_raiding/underground/command/captain) +"Vz" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"VA" = ( +/obj/structure/table/mainship, +/obj/machinery/computer3/laptop, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"VB" = ( +/obj/structure/table, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"VC" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/sliceable/sandwiches/xenomeatbread, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"VD" = ( +/obj/machinery/hydroponics/slashable, +/turf/open/floor/prison/green{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"VE" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"VF" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"VH" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"VI" = ( +/obj/machinery/door/airlock/mainship/engineering/glass, +/obj/structure/cable, +/turf/open/floor/mainship/orange/full, +/area/campaign/tgmc_raiding/underground/engineering) +"VJ" = ( +/obj/structure/table/mainship, +/obj/item/taperecorder, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security) +"VK" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"VL" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/cult/clock, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"VM" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"VN" = ( +/obj/structure/table/woodentable, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"VO" = ( +/obj/structure/bed/chair/office/dark/east, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"VP" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"VR" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/boxing) +"VS" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/tile/chapel{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"VU" = ( +/obj/structure/desertdam/decals/road, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"VV" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"VX" = ( +/turf/open/floor/plating/ground/desertdam/asphalt/threeside{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"VY" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mainship/blue{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/command/east) +"VZ" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"Wa" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/cargo) +"Wb" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Wd" = ( +/obj/machinery/door/airlock/multi_tile/mainship/maint/free_access, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/living/barracks) +"We" = ( +/turf/open/floor/prison/green/corner{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"Wf" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/prep) +"Wg" = ( +/obj/structure/prop/mainship/sensor_computer1, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Wh" = ( +/obj/structure/table/mainship, +/obj/item/tool/lighter, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Wi" = ( +/obj/machinery/door/airlock/multi_tile/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"Wj" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/stairs/railstairs_vert{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Wk" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command/east) +"Wm" = ( +/obj/structure/flora/tree/joshua, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"Wn" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Wo" = ( +/obj/machinery/computer/body_scanconsole, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"Wp" = ( +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Wq" = ( +/obj/structure/reagent_dispensers/fueltank/barrel, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Wr" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Ws" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"Wt" = ( +/obj/structure/prop/mainship/mapping_computer, +/turf/open/floor/mainship/blue{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/command) +"Wu" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"Wv" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/target_stake, +/obj/item/target/syndicate, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Wx" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black/corner{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Wz" = ( +/obj/machinery/door/airlock/mainship/security{ + dir = 2 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"WB" = ( +/obj/structure/table/mainship, +/obj/effect/spawner/random/misc/earmuffs, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"WC" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"WD" = ( +/obj/structure/rack, +/obj/effect/spawner/random/weaponry/explosive/grenade/multiplefour, +/turf/open/floor/mainship/red{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"WE" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"WF" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"WG" = ( +/obj/structure/table/mainship, +/obj/item/blueprints, +/turf/open/floor/mainship/orange, +/area/campaign/tgmc_raiding/underground/engineering) +"WH" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/prison/kitchen, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"WI" = ( +/obj/machinery/washing_machine, +/turf/open/floor/prison/kitchen, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"WJ" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/laundry) +"WK" = ( +/obj/structure/largecrate/supply/explosives/grenades, +/turf/open/floor/mainship/red/full, +/area/campaign/tgmc_raiding/underground/security) +"WL" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"WM" = ( +/obj/structure/bed/chair/sofa/corsat/left, +/obj/machinery/light, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/boxing) +"WN" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs, +/turf/open/floor/prison/darkred{ + dir = 8 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"WO" = ( +/obj/structure/prop/mainship/sensor_computer3, +/turf/open/floor/mainship/blue{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/command) +"WP" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security) +"WQ" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"WR" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"WS" = ( +/obj/structure/desertdam/decals/road/edge/long, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"WT" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"WV" = ( +/turf/open/floor/mainship/black, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"WX" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"WY" = ( +/turf/open/floor/mainship/black{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"WZ" = ( +/obj/structure/flora/pottedplant/twentytwo, +/turf/open/floor/mainship/red{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/security) +"Xa" = ( +/obj/structure/cable, +/turf/open/floor/mainship/orange/corner, +/area/campaign/tgmc_raiding/underground/engineering) +"Xb" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Xc" = ( +/obj/structure/table/fancywoodentable, +/obj/effect/spawner/random/misc/paperbin, +/turf/open/floor/carpet/blue, +/area/campaign/tgmc_raiding/underground/command/captain) +"Xd" = ( +/obj/structure/showcase, +/obj/structure/window/reinforced, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"Xe" = ( +/obj/effect/landmark/patrol_point/tgmc_22, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"Xf" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1 + }, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"Xg" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/mainship/orange{ + dir = 5 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Xh" = ( +/turf/open/floor/mainship/orange{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Xj" = ( +/obj/machinery/light, +/turf/open/floor/mainship/green, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Xk" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Xl" = ( +/obj/structure/bookcase, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"Xm" = ( +/obj/machinery/light, +/turf/open/floor/mainship/blue, +/area/campaign/tgmc_raiding/underground/command) +"Xn" = ( +/obj/structure/table, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Xo" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison/darkbrown/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Xp" = ( +/obj/effect/spawner/random/misc/structure/broken_window/colonyspawn, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"Xq" = ( +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Xr" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"Xs" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Xu" = ( +/obj/machinery/computer3/server, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Xv" = ( +/obj/structure/cable, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"Xw" = ( +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 4 + }, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 9 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Xx" = ( +/obj/structure/stairs/corner_seamless{ + dir = 1 + }, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Xy" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/bathroom) +"Xz" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"XA" = ( +/obj/structure/monorail, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"XB" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"XC" = ( +/obj/structure/table, +/obj/item/flashlight/lamp/green, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"XE" = ( +/obj/structure/cargo_container/hd{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"XF" = ( +/obj/machinery/door/airlock/multi_tile/mainship/maint/free_access, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/general/prep) +"XG" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"XH" = ( +/obj/structure/rock/basalt/pile, +/turf/open/floor/plating/ground/mars/random/dirt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"XI" = ( +/obj/machinery/door/window{ + dir = 8 + }, +/obj/effect/spawner/random/misc/soap/deluxeweighted, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/command/captain) +"XJ" = ( +/obj/machinery/door/airlock/mainship/generic, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"XK" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/effect/spawner/random/misc/paperbin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"XL" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/wrapped/proteinbar, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/east) +"XM" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"XN" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"XO" = ( +/obj/structure/cable, +/obj/machinery/power/apc, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"XP" = ( +/obj/structure/flora/pottedplant/twentyone, +/turf/open/floor/mainship/blue{ + dir = 10 + }, +/area/campaign/tgmc_raiding/underground/command) +"XQ" = ( +/turf/open/liquid/water/river, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"XR" = ( +/obj/structure/table/mainship, +/obj/item/attachable/magnetic_harness, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"XS" = ( +/obj/structure/rack, +/obj/effect/spawner/random/medical/bloodpack, +/obj/effect/spawner/random/medical/bloodpack, +/obj/effect/spawner/random/medical/bloodpack, +/turf/open/floor/mainship/sterile/dark, +/area/campaign/tgmc_raiding/underground/medbay) +"XT" = ( +/obj/structure/prop/vehicle/crawler/crawler_blue{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"XU" = ( +/obj/structure/desertdam/decals/road{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"XW" = ( +/obj/effect/spawner/random/engineering/structure/random_tank_holder, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"XX" = ( +/obj/structure/cable, +/turf/open/floor/prison/yellow/corner, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"XY" = ( +/turf/closed/wall/wood, +/area/campaign/tgmc_raiding/colony/indoor/bar) +"XZ" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Ya" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1 + }, +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Yc" = ( +/obj/machinery/light, +/obj/structure/stairs/railstairs{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Yd" = ( +/obj/structure/table/mainship, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"Ye" = ( +/obj/structure/desertdam/decals/road/edge/long{ + dir = 1 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/south) +"Yf" = ( +/obj/structure/flora/desert/bush, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Yh" = ( +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Yi" = ( +/obj/structure/table/woodentable, +/obj/machinery/computer/emails{ + density = 0 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"Yj" = ( +/obj/item/trash/candle, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Yl" = ( +/turf/closed/shuttle/escapeshuttle, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Ym" = ( +/obj/structure/desertdam/decals/road/edge{ + dir = 4 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Yn" = ( +/obj/structure/window/framed/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/security/south_outpost) +"Yo" = ( +/obj/structure/barricade/guardrail{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Yp" = ( +/turf/closed/wall, +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed) +"Yq" = ( +/obj/structure/ship_ammo/cas/bomb, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Ys" = ( +/obj/structure/monorail{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Yt" = ( +/obj/structure/desertdam/decals/road/edge/long, +/obj/structure/prop/vehicle/crawler/crawler_blue, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/east) +"Yv" = ( +/turf/open/floor/mainship/cargo/arrow{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"Yw" = ( +/turf/open/floor/mainship/blue{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/command) +"Yx" = ( +/obj/structure/bed/bunkbed, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Yy" = ( +/turf/open/floor/mainship/green/corner, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Yz" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/dmg3, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"YA" = ( +/obj/structure/bed/bunkbed, +/obj/machinery/light, +/turf/open/floor/mainship/green, +/area/campaign/tgmc_raiding/underground/living/barracks) +"YB" = ( +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"YC" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"YD" = ( +/turf/open/floor/tile/showroom, +/area/campaign/tgmc_raiding/underground/living/laundry) +"YE" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"YF" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/prison/darkbrown{ + dir = 10 + }, +/area/campaign/tgmc_raiding/colony/indoor/storage) +"YG" = ( +/turf/closed/wall/mainship/gray/outer, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"YH" = ( +/obj/machinery/hydroponics/slashable, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison/green{ + dir = 4 + }, +/area/campaign/tgmc_raiding/colony/indoor/hydroponics) +"YI" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/prison/kitchen, +/area/campaign/tgmc_raiding/colony/indoor/laundry) +"YK" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"YL" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"YM" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"YN" = ( +/obj/structure/bed/chair/sofa/corsat/verticaltop, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"YO" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/offices) +"YP" = ( +/obj/structure/table/reinforced, +/turf/open/floor/prison/bright_clean, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"YQ" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"YR" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/general/prep) +"YS" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/living/bathroom/south) +"YT" = ( +/obj/structure/table, +/obj/item/clothing/head/fedora, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast) +"YU" = ( +/turf/closed/mineral/smooth, +/area/campaign/tgmc_raiding/underground/command/captain) +"YW" = ( +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/dome) +"YX" = ( +/obj/structure/table/mainship, +/obj/machinery/recharger, +/turf/open/floor/prison/darkred{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"YY" = ( +/obj/machinery/light, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/station) +"YZ" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/barracks) +"Za" = ( +/obj/structure/campaign_deployblocker, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Zb" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground/general/firing_range) +"Zc" = ( +/obj/structure/cable, +/turf/open/floor/mainship/red{ + dir = 8 + }, +/area/campaign/tgmc_raiding/underground/security/central_outpost) +"Zd" = ( +/obj/structure/platform{ + dir = 10 + }, +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Ze" = ( +/obj/structure/sink, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/cafeteria) +"Zf" = ( +/obj/machinery/power/apc{ + dir = 8 + }, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering/filtration) +"Zg" = ( +/turf/open/floor/freezer, +/area/campaign/tgmc_raiding/colony/indoor/freezer) +"Zi" = ( +/turf/closed/wall/mainship/gray, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Zj" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/mainship/cargo, +/area/campaign/tgmc_raiding/underground/cargo/storage) +"Zk" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/colony/indoor/station) +"Zl" = ( +/obj/structure/table/mainship, +/obj/item/storage/fancy/cigarettes/dromedaryco, +/obj/item/tool/lighter{ + pixel_x = 12; + pixel_y = 9 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/maintenance/filtration) +"Zm" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/tunnel/west) +"Zn" = ( +/obj/machinery/door/poddoor/shutters/mainship{ + dir = 1; + id = "South-Colony-Garage" + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"Zo" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/campaign/tgmc_raiding/underground/maintenance/north) +"Zp" = ( +/obj/structure/monorail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/south) +"Zq" = ( +/turf/open/floor/mainship/orange/corner{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/engineering) +"Zr" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"Zs" = ( +/obj/structure/cargo_container/nt{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Zt" = ( +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/tunnel/east) +"Zu" = ( +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"Zv" = ( +/obj/effect/landmark/patrol_point/som/som_12, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southeast) +"Zw" = ( +/obj/structure/cable, +/turf/open/floor/prison/darkyellow/full, +/area/campaign/tgmc_raiding/colony/indoor/engineering) +"Zx" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 4 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/east) +"Zz" = ( +/obj/structure/cable, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/garage) +"ZA" = ( +/turf/open/floor/prison/darkred{ + dir = 6 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ZB" = ( +/turf/open/floor/mainship/sterile/side, +/area/campaign/tgmc_raiding/underground/medbay) +"ZC" = ( +/obj/machinery/light, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/supermarket) +"ZD" = ( +/obj/structure/window_frame/mainship/gray, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/tunnel/central) +"ZE" = ( +/obj/structure/cable, +/turf/open/floor/tile/chapel{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/living/chapel) +"ZF" = ( +/obj/structure/closet/secure_closet/medical_doctor, +/turf/open/floor/mainship/sterile/corner, +/area/campaign/tgmc_raiding/underground/medbay) +"ZG" = ( +/obj/item/weapon/gun/sentry/big_sentry/premade/radial, +/turf/open/floor/plating/ground/mars/random/cave, +/area/campaign/tgmc_raiding/underground) +"ZH" = ( +/obj/structure/cargo_container/green{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/campaign/tgmc_raiding/underground/cargo) +"ZJ" = ( +/obj/structure/bed/chair{ + desc = "This tiny folding chair looks like a torture device in comparison to the chair next to it."; + dir = 4 + }, +/turf/open/floor/prison/darkred{ + dir = 9 + }, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ZK" = ( +/obj/machinery/door/airlock/mainship/generic/glass{ + dir = 2 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/living/library) +"ZL" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 1 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"ZM" = ( +/obj/effect/spawner/random/misc/plant, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/general/hallway) +"ZN" = ( +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/bathroom) +"ZO" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/tile/chapel{ + dir = 5 + }, +/area/campaign/tgmc_raiding/colony/indoor/chapel) +"ZP" = ( +/obj/structure/desertdam/decals/road{ + dir = 8 + }, +/turf/open/floor/plating/ground/desertdam/asphalt, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"ZQ" = ( +/turf/open/floor/mainship/mono, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"ZR" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/prison, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ZS" = ( +/obj/structure/table/mainship, +/obj/item/restraints/handcuffs, +/turf/open/floor/prison/plate, +/area/campaign/tgmc_raiding/colony/indoor/security) +"ZT" = ( +/obj/structure/cable, +/turf/open/floor/mainship/black{ + dir = 9 + }, +/area/campaign/tgmc_raiding/underground/general/hallway/west) +"ZU" = ( +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/green{ + dir = 6 + }, +/area/campaign/tgmc_raiding/underground/living/barracks) +"ZV" = ( +/obj/structure/table/mainship, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/item/tool/pen{ + pixel_y = 4 + }, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/command) +"ZW" = ( +/obj/item/weapon/gun/sentry/big_sentry/premade/radial, +/turf/open/floor/plating/ground/mars/random/sand, +/area/campaign/tgmc_raiding/colony/outdoor/southwest) +"ZY" = ( +/obj/machinery/door/airlock/multi_tile/mainship/engineering/glass, +/obj/structure/cable, +/turf/open/floor/mainship/floor, +/area/campaign/tgmc_raiding/underground/engineering) + +(1,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +tc +tc +tc +tc +tc +tc +"} +(2,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +ws +zl +vl +tg +tc +"} +(3,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +ED +tg +tg +tg +tg +vl +tc +"} +(4,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +NE +NE +NE +iw +iw +iw +NE +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +on +tg +tg +tg +tg +TA +tg +tg +wl +tg +tc +"} +(5,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +iw +iw +iw +iw +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +iw +iw +iw +iw +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +NE +sN +Nw +Om +JZ +tX +Nw +NE +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +vl +tg +tg +vl +vl +tg +tg +vu +tc +"} +(6,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +iw +rF +px +rF +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +iw +iw +iw +iw +iw +MU +MU +MU +MU +MU +MU +MU +MU +iw +rF +Th +rF +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +NE +qt +Om +yC +wU +YQ +Nw +Nw +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +wl +vl +tg +tg +wl +vl +vl +tg +tg +tg +tg +tc +"} +(7,1,1) = {" +Qv +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +Hc +Hc +Hc +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +Zm +Gj +Yj +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +Hc +Hc +Hc +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +Om +Om +tX +Om +Om +Om +Nw +NE +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +Wm +tg +tg +tg +tg +tg +Xe +tg +tg +tc +"} +(8,1,1) = {" +Qv +CL +Om +Om +Om +Om +Om +Om +Om +bJ +Vo +lC +lC +mR +IN +Om +Om +Om +Om +Om +Om +Om +Om +Om +bJ +Vo +lC +lC +mR +IN +Om +Om +Om +Om +Om +Om +Om +Om +Om +bJ +Vo +lC +lC +mR +IN +Om +Om +Om +Om +Om +Om +Om +Om +Om +Om +bJ +Vo +lC +lC +mR +IN +Om +Om +Om +Om +Om +Om +Om +Om +Om +Om +Om +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +vl +vl +tg +MU +MU +MU +MU +ED +tg +tg +tg +tg +tg +tg +tg +tg +tg +tg +tg +tc +"} +(9,1,1) = {" +Qv +Ml +Da +Da +QN +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +Da +Da +Om +Om +AX +Om +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +vl +vl +tg +tg +tg +MU +MU +MU +tg +tg +tg +tg +tg +vl +tg +tg +Es +tg +ws +wl +tc +"} +(10,1,1) = {" +Qv +fV +Sp +Sp +Sp +nl +Sp +xD +Sp +Sp +Sp +Ts +ei +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Ts +ei +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Sp +Ts +ei +Sp +Sp +Sp +Sp +Sp +Sp +FX +FX +FX +FX +FX +FX +FX +FX +qx +Dy +FX +FX +FX +FX +FX +FX +FX +Ys +Da +Om +Om +Ge +XM +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +wl +tg +tg +tg +tg +tg +tg +tg +tg +tY +tg +tg +wl +tg +Es +Es +tg +tg +ED +tc +"} +(11,1,1) = {" +Qv +Ml +Jo +Da +Da +cP +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +tr +Da +Da +Da +Da +Da +Da +Da +Ts +ei +Da +Da +Da +Da +Da +Da +Da +FO +Da +Om +Om +Rj +Nw +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +nn +Rr +Wv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Yp +Yp +Yp +Yp +Yp +MU +MU +tg +tg +tg +tg +Es +tg +tg +tg +ED +tg +tg +vl +vl +tg +tg +tg +tg +Es +Es +Es +vl +tg +tg +tc +"} +(12,1,1) = {" +Qv +CL +Om +Om +Da +cP +Da +Om +Om +cr +Wj +lC +lC +xY +ah +Om +Om +Om +Om +Om +Om +Om +Om +Om +cr +Wj +lC +lC +xY +ah +Om +Om +Om +Om +Om +BO +Om +BO +Om +cr +Wj +lC +lC +xY +ah +Om +Om +BO +Om +Lq +Om +BO +Om +Om +Om +cr +Wj +lC +lC +xY +ah +Om +Om +cr +ah +Da +FO +Da +cr +Gh +Nw +Nw +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Wv +Rr +nn +Rr +nn +Rr +nn +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Yp +tF +Yh +Yh +Yp +MU +tg +tg +tg +tg +Es +Es +Es +tg +tg +wl +tg +vl +vl +tg +tg +tg +tg +Es +Es +Es +Es +vl +tg +tg +tc +"} +(13,1,1) = {" +Qv +iw +iw +Om +Da +ed +Da +Om +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +Hc +Hc +Hc +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +Sz +Sz +mG +Sz +Sz +Sz +Sz +Sz +Sz +Sz +iw +iw +iw +iw +Hc +Jd +Hc +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +iw +TE +Da +FO +Da +zH +iw +iw +iw +NE +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Rr +nn +Rr +Wv +Rr +nn +Rr +nn +Ue +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Yp +My +zF +zF +NH +tg +tg +vl +vl +tg +Es +Es +vl +tg +tg +tg +tg +tg +tg +ws +tg +wl +vl +Es +Es +Es +Es +wl +tg +tg +tc +"} +(14,1,1) = {" +YG +iG +iG +ax +Hi +vM +Hi +ax +iG +BG +jw +BG +BG +BG +BG +jw +lI +iG +MU +iw +mf +ps +Pn +iw +MU +MU +MU +MU +MU +MU +MU +It +JW +JW +JW +JW +JW +gq +jM +JW +JW +JW +fC +It +It +It +It +iw +Jd +ul +Yj +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +iw +lC +nL +Xz +nL +lC +iw +MU +MU +MU +MU +MU +MU +MU +LC +LC +LC +LC +LC +Ue +nn +Rr +nn +Rr +nn +Rr +nn +Rr +nn +Ue +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Yp +zz +gn +Yh +Yp +tg +tg +wl +vl +tg +tg +tg +vl +tg +tg +tg +Es +Es +tg +tg +tg +tg +Es +Es +Es +Es +tg +tg +tg +Wm +tc +"} +(15,1,1) = {" +YG +Il +oM +ax +Hi +vM +Hi +ax +QZ +BG +BG +BG +BG +BG +BG +BG +Fj +vJ +MU +iw +iw +iw +iw +iw +MU +MU +MU +Sz +It +It +It +Sz +do +JW +Bb +Bb +HE +Bb +Bb +Bb +JW +JW +JW +JW +hW +It +Sz +iw +ar +iw +iw +iw +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +iw +lC +fU +fn +fU +lC +iw +MU +MU +MU +LC +LC +LC +LC +LC +XR +lD +lD +lD +pX +Wv +Rr +nn +Rr +nn +Rr +nn +Rr +SP +Ue +MU +MU +og +og +og +og +og +og +og +og +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Yp +Yp +Yp +Yp +Yp +tg +tY +tg +tg +tg +tg +tg +tg +tg +Es +Es +Es +Es +RM +tg +tg +tg +Es +Es +Es +Es +ED +tg +tg +tg +tc +"} +(16,1,1) = {" +YG +zd +oM +ax +Hi +vM +Hi +ax +QZ +Ea +OL +BG +Ea +kW +OL +BG +BG +vJ +MU +MU +MU +MU +MU +MU +MU +MU +Sz +Sz +TY +JW +JW +JW +JW +JW +Bb +wf +Mj +Mj +wf +Bb +It +dn +Ft +JW +JW +jM +JW +JW +OW +Si +Si +Si +Si +Si +TF +TF +Si +Si +MU +MU +MU +MU +MU +iw +SQ +Da +FO +Da +ij +iw +MU +MU +MU +LC +cs +Kl +By +LC +Yd +YR +lD +tC +Ue +Zb +Rr +nn +Rr +nn +Rr +nn +Rr +Wv +Ue +MU +MU +og +wP +eg +eg +lw +eg +eg +JU +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +tg +tg +tg +tg +Wm +tg +tg +tg +Es +Es +Es +Es +Es +Es +tg +vl +tg +tg +Es +Es +tg +tg +tg +tg +tg +tc +"} +(17,1,1) = {" +bx +Mf +oM +dd +Vz +Vz +Vz +dd +QZ +BG +BG +av +iG +iG +iG +aw +BG +iG +MU +MU +MU +MU +MU +MU +MU +MU +It +OW +tt +vb +OG +JW +hi +CW +Bb +wf +Mj +Mj +Mj +Bb +It +It +Sz +yO +JW +JW +JW +JW +OW +Si +Sr +eD +bF +qk +bF +eD +KN +Si +Si +Si +TF +TF +Si +Si +IN +Da +FO +Da +bJ +LC +LC +LC +LC +LC +rS +RI +RI +LC +Bq +lD +lD +Yd +Ue +nn +Rr +nn +Rr +nn +Rr +nn +Rr +nn +Ue +MU +MU +og +Ob +Ov +Ot +Ot +Ot +gG +LB +og +og +og +og +og +og +og +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +tg +tg +wl +tg +tg +tg +tg +tg +wl +Es +Es +Es +Es +Es +Es +tg +vl +wl +tg +tg +tg +tg +tg +wl +tg +vl +tc +"} +(18,1,1) = {" +bx +BG +oM +dd +BG +zd +BG +dd +QZ +Ea +OL +BG +Ea +kW +OL +BG +BG +iG +ng +ng +Fy +Fy +ng +ng +ng +ng +Sz +sD +Sz +It +Sz +It +Sz +It +Bb +kC +xs +Mj +bs +Bb +It +It +It +It +It +It +Sz +JW +yD +Si +mE +Of +YZ +Of +YZ +Of +zN +Si +Iz +eD +eD +eD +Tj +Si +Om +Da +FO +Da +Om +LC +AU +Rt +FW +LC +LC +yK +LC +LC +SU +lD +Bd +xp +Ue +nn +Rr +nn +Rr +nn +Rr +nn +Rr +nn +Ue +MU +MU +og +Ob +Ot +Ot +og +Ot +Ot +LB +eg +eg +eg +eg +eg +eg +JU +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +ws +tg +tg +Es +tg +ED +vl +tg +tg +vl +tg +tg +tg +Es +Es +Es +Es +tg +tg +tg +tg +tg +tg +tg +vl +vl +tg +tg +Es +tc +"} +(19,1,1) = {" +YG +Rk +Cj +lE +BG +Mf +BG +lE +Yv +BG +BG +BG +BG +BG +BG +BG +BG +lG +wA +SD +wu +wu +wu +wu +SD +NJ +NJ +Uc +ng +MU +MU +MU +MU +MU +Bb +Bb +Bb +js +Bb +Bb +Bb +Bb +uJ +uJ +Bb +Bb +Bb +JW +OW +Si +Yx +Of +YZ +Of +YZ +Of +YA +Si +Kz +BR +pT +Wb +mW +Si +Om +Da +FO +Da +Om +LC +rS +RI +RI +LC +lD +la +lD +lD +lD +lD +lD +EE +Ue +TZ +Ue +WB +Ue +IP +Ue +TZ +Ue +WB +Ue +Ue +Ue +og +oN +Ot +og +og +og +Ot +JO +Ot +Ot +Ot +Ot +Ot +gG +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +Es +Es +RM +tg +vl +tg +tg +tg +tg +tg +tg +tg +Es +Es +tg +tg +tg +tg +tg +tg +tg +tg +vl +tg +tg +RM +Es +tc +"} +(20,1,1) = {" +YG +Il +BG +dd +BG +GX +BG +dd +QZ +BG +BG +BG +BG +BG +BG +BG +BG +iG +QG +ZQ +ZQ +ZQ +ZQ +ZQ +ZQ +Ri +JF +aS +Fy +MU +MU +MU +MU +MU +Bb +Ol +wN +xJ +Sb +KS +xJ +Sb +xJ +xJ +xJ +sj +Bb +JW +PZ +Si +mE +Of +YZ +Of +YZ +Of +zN +Si +YC +bU +Lp +Wb +Xj +Si +Om +Da +FO +Da +Om +LC +LC +yK +LC +LC +uT +uT +uT +uT +uT +uT +uT +Oy +Ue +Pg +Hy +Pg +kJ +Pg +zk +Pg +Hy +Pg +Ue +zj +ii +SC +Ob +Ot +Ot +og +Ot +Ot +LB +nI +vV +nI +nI +nI +qF +JU +og +MU +MU +MU +MU +MU +MU +MU +on +tg +wl +tg +Es +Es +Es +Es +tg +tg +wl +tg +tg +vl +tg +tg +tg +wl +vl +tg +tg +Es +tg +wl +tg +tg +tY +tg +tg +Es +Es +tc +"} +(21,1,1) = {" +YG +BG +Cj +lE +BG +zd +BG +lE +Yv +BG +BG +HW +HW +HW +HW +HW +HW +wO +zP +SG +SG +SG +SG +SG +SG +dl +WV +ng +Fy +MU +MU +MU +MU +MU +Bb +Ze +xJ +xJ +xJ +Bb +Dn +DZ +oh +DZ +oh +xJ +vN +wA +Uc +gy +Kz +Of +Of +Of +Of +Of +Qm +rj +Fk +bv +pT +Wb +mW +Si +GY +Da +FO +Da +XM +LC +ez +mO +lD +lD +uT +Bd +Yd +YR +Pc +YR +uT +lD +Oi +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +Oi +ii +ii +og +Ob +Oz +Ot +nW +Ot +Ui +LB +og +og +og +og +Ob +Ot +nM +og +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +tg +Es +Es +Es +Es +Es +tg +tg +tg +Es +Es +tg +tg +tg +Wm +tg +tg +Es +Es +Es +tg +tg +tg +tg +tg +Es +Es +Es +tc +"} +(22,1,1) = {" +YG +Rk +oM +dd +FS +Mf +BG +Gk +QZ +Ea +OL +HW +Ea +kW +OL +BG +BG +iG +ng +ng +ng +Fy +Fy +ng +ng +DT +WV +ng +Fy +MU +MU +MU +MU +MU +Bb +DZ +iM +iM +iM +Bb +Dn +uk +oh +DZ +oh +QE +QE +DT +uM +ms +vi +oc +oc +oc +Of +Of +Yy +qR +Ez +Of +Of +Of +mW +Wd +Om +Da +FO +Da +Om +XF +lD +uT +uT +uT +uT +Bd +eo +YR +Yd +YR +uT +uT +wx +wx +wx +wx +wx +kJ +wx +wx +wx +wx +wx +NO +ii +og +rk +nI +nI +Go +ha +ha +JU +og +MU +MU +og +Ob +Ot +zM +og +MU +MU +MU +MU +MU +MU +MU +tg +ED +tg +tg +ZW +Es +Es +tg +tg +tg +tg +Es +Es +Es +wl +tg +tg +tg +tg +tg +Es +Es +Es +tg +vl +tg +tg +vl +Es +Es +Es +tc +"} +(23,1,1) = {" +bx +zd +oM +dd +Vz +Vz +Vz +dd +QZ +BG +BG +YY +iG +iG +iG +aw +BG +iG +MU +MU +MU +MU +MU +MU +ng +DT +ON +ki +Fy +MU +MU +MU +MU +MU +uJ +xJ +xJ +xJ +xJ +yx +QE +QE +QE +QE +QE +XZ +Bb +QG +uM +Si +mE +Of +YZ +oc +YZ +Of +zN +Si +Kz +KP +KP +Of +mW +PV +km +nZ +Em +iu +al +pC +uT +uT +lD +LC +LC +LC +LC +LC +LC +LC +lD +gE +Ue +FY +FY +xK +ME +wx +wx +uN +Nu +ji +Ue +TV +ii +YS +YS +YS +YS +YS +YS +mA +YS +YS +YS +MU +og +Ob +Ot +LB +og +og +og +MU +MU +MU +MU +vl +vl +wl +tg +tg +tg +tg +wl +tg +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Es +Rh +Rh +Rh +Rh +tg +wl +tg +Es +Es +tc +"} +(24,1,1) = {" +bx +Mf +oM +ax +Hi +vM +Hi +ax +QZ +Ea +OL +HW +Ea +kW +OL +BG +BG +vJ +MU +MU +MU +MU +MU +MU +ng +DT +ZQ +uu +ng +ng +ng +Fy +Fy +Fy +uJ +Dn +DZ +oh +DZ +oh +rv +oh +DZ +oh +DZ +oh +Bb +QG +uM +Si +Yx +Of +YZ +oc +YZ +Of +YA +Si +Kz +pT +uP +Of +nr +Si +Fu +nZ +Em +nZ +NF +LC +sk +uT +lD +LC +RI +sC +LC +sC +RI +LC +lD +uT +LC +Ue +Ue +Ue +lR +Eg +Yn +Yn +Yn +lR +Ue +XG +ii +zZ +zZ +zZ +zZ +zZ +zZ +gt +PH +fI +YS +MU +og +Ob +Ot +gA +KX +EX +og +yW +MU +MU +MU +vl +tg +tg +tg +tg +Rh +Rh +Rh +Rh +Rh +ic +ic +ic +ic +ic +ic +ic +AG +ic +ic +ic +ic +ic +ic +AG +ic +Rh +Rh +Rh +Rh +tg +Es +tc +"} +(25,1,1) = {" +bx +Il +oM +ax +Hi +vM +Hi +ax +QZ +BG +BG +HW +BG +BG +BG +BG +Se +vJ +MU +MU +MU +MU +MU +MU +Fy +DT +ZQ +ON +wu +wu +wu +wu +wu +ki +Bb +Dn +DZ +oh +mZ +oh +DZ +oh +iM +oh +DZ +oh +Bb +QG +nU +Si +mE +Of +YZ +oc +YZ +Of +zN +Si +YC +UK +Nd +Of +rY +Si +km +nZ +Em +nZ +km +LC +Kb +uT +jS +jg +RI +Dr +LC +gj +RI +jg +im +IV +LC +MU +MU +MU +lR +gJ +Cg +GQ +ol +lR +vW +NO +aV +YS +zZ +zZ +zZ +zZ +YS +bq +PH +fI +YS +MU +og +Ob +Ot +LB +jj +KX +KX +og +og +og +og +Rh +Rh +Rh +Rh +Rh +Rh +ic +ic +ic +AG +ic +EF +EF +EF +EF +EF +EF +EF +EF +EF +EF +hI +EF +EF +EF +ic +ic +ic +ic +Rh +Rh +Rh +tc +"} +(26,1,1) = {" +YG +BG +Na +ax +Hi +Hi +Hi +ax +Ev +VP +HW +HW +kT +BG +BG +BG +AE +iG +MU +MU +MU +MU +MU +MU +Fy +DT +ZQ +ZQ +JF +yn +yn +yn +fv +WV +Bb +xJ +xJ +iK +xJ +xJ +iK +xJ +yv +xJ +xJ +xJ +Bb +QG +uM +Si +Hd +tU +eJ +MN +eJ +qR +ZU +Si +IW +lW +lW +qR +TQ +Si +km +nZ +Em +nZ +km +LC +dt +uT +lD +LC +rS +FW +LC +FW +aI +LC +lD +uT +LC +cB +Bz +Bz +lR +mV +Rn +Rn +BN +Yn +ii +NO +Pw +YS +YS +zZ +zZ +YS +YS +gt +PH +fI +zZ +MU +og +Ob +Ot +LB +eg +Av +Av +eg +eg +eg +Kv +ic +XH +ic +ic +ic +ic +ic +EF +EF +EF +EF +hI +ic +ic +ic +ic +ic +ic +ic +AG +ic +ic +ic +ic +EF +EF +EF +EF +AG +ic +ic +ic +tc +"} +(27,1,1) = {" +YG +GV +iG +ax +ax +am +ax +ax +iG +iG +vJ +vJ +iG +iG +vJ +vJ +iG +iG +MU +MU +MU +MU +MU +MU +Fy +DT +ZQ +ZQ +hd +ng +ng +ng +hg +WV +Bb +Bb +Bb +Bb +xJ +Ek +Bb +Bb +Bb +Bb +Bb +Bb +Bb +QG +uM +Si +Si +Si +Si +Si +Si +Si +Si +Si +Si +TF +Si +hL +Si +Si +km +nZ +Em +nZ +km +LC +ua +uT +lD +LC +LC +LC +LC +LC +LC +LC +lD +uT +RU +bQ +jA +Bz +lR +WD +gl +Rn +vF +Yn +ii +NO +QY +YS +kY +PH +gt +wt +gt +gt +PH +fI +zZ +MU +og +oN +Ot +JO +Ot +Ot +Ot +Ot +Ot +Ot +Gu +EF +EF +EF +hI +EF +EF +EF +EF +ic +ic +ic +ic +ic +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +ic +ic +ic +ic +EF +EF +EF +EF +hI +tc +"} +(28,1,1) = {" +eb +EW +iG +iG +iG +iG +iG +iG +iG +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +ng +DT +ZQ +ZQ +rb +ng +wA +wu +Oa +ON +wu +SD +wu +wu +wu +wu +wu +wu +wu +SD +wu +wu +wu +Oa +MH +wu +wu +wu +ki +eX +MY +qV +qV +qV +eX +Ny +Ny +WJ +Ny +RZ +MZ +nZ +Em +nZ +PP +LC +CI +uT +kO +lD +lD +yI +lD +lD +GA +lD +lD +kw +gI +bQ +jA +Wf +lR +yV +Pa +Py +Va +HO +ii +NO +NO +aD +gt +gt +FA +DA +DA +PH +PH +Jn +YS +MU +og +Ob +Ot +LB +nI +Pe +Pe +nI +nI +nI +Kv +ic +ic +ic +ic +ic +ic +ic +XH +ic +Rh +Rh +Rh +Rh +Rh +tg +wl +tg +tg +ys +tg +tg +tg +Rh +Rh +Rh +Rh +ic +ic +ic +ic +ic +AG +tc +"} +(29,1,1) = {" +eb +EW +nt +ke +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +ap +ap +lt +ap +ap +ap +ap +MU +MU +MU +ng +DT +JF +yn +oK +ng +QG +kG +SG +SG +SG +SG +SG +SG +SG +SG +SG +SG +SG +SG +SG +SG +dl +Ri +Ri +Ri +Ri +Ri +uM +Xy +eS +MC +MY +MY +WC +Ny +Rl +WJ +Ny +RZ +iA +nZ +Em +nZ +Gv +LC +lD +lD +lD +lD +lD +lD +lD +lD +lD +lD +lD +lD +gI +bQ +SJ +jA +lR +lR +lR +lR +lR +lR +fS +ii +Cx +YS +PH +Ru +YS +YS +YS +PH +Ru +YS +YS +MU +og +Ob +Ot +LB +FI +KX +KX +og +og +og +og +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +tg +tg +tg +tg +tg +vl +vl +tg +tg +vl +tg +wl +tg +tg +tg +Rh +Rh +Rh +Rh +Rh +Rh +Rh +tc +"} +(30,1,1) = {" +sA +EW +EW +CO +MU +MU +MU +MU +MU +MU +ap +ap +lt +lt +ap +fY +YB +Uw +YB +DW +ap +ng +Fy +Fy +ng +DT +uu +ng +ng +ng +QG +uM +kr +kr +iZ +iZ +kr +kr +pY +OO +kr +kr +iZ +iZ +kr +kr +tw +Gf +gv +yn +yn +fv +qT +eX +eX +eX +ep +ro +WC +Ny +Jy +WJ +Ny +RZ +Ac +LZ +Ar +LZ +Ac +LC +RI +sC +sC +sC +sC +RI +sZ +sZ +sZ +sZ +RI +cs +gI +cB +bQ +jA +Bz +MU +MU +MU +MU +Ue +ii +ii +ii +VZ +PH +PH +PC +PC +PC +PH +PH +zZ +MU +MU +og +Ob +Ot +gA +KX +EX +og +og +MU +MU +MU +MU +tg +tg +tg +tg +tg +tg +tg +tg +tg +ZW +Es +Es +Es +tg +tg +vl +tg +tg +tg +tg +Wm +tg +tg +tg +tg +tg +tg +wl +tg +tg +Es +tc +"} +(31,1,1) = {" +sA +EW +EW +ke +MU +MU +MU +MU +MU +MU +ap +Ic +iE +Aw +ap +wY +zR +ap +YB +YB +ut +wA +wu +wu +wu +lM +ON +wu +wu +wu +Oa +uM +kr +pI +ht +ht +ht +ef +ht +ht +ht +ef +ht +ht +AR +kr +fA +fA +fA +fA +fA +QG +uM +eX +wE +gQ +MY +ro +eX +Ny +WJ +WJ +Ny +RZ +Ac +nf +tV +nf +Ac +LC +rS +RI +RI +RI +RI +RI +RI +RI +RI +RI +RI +cs +gI +cB +Bf +yq +cB +Bz +Bz +Bz +cB +cB +na +Ue +Ue +YS +kY +PH +PH +PH +PH +PH +rg +YS +MU +MU +og +Ob +Ot +LB +og +og +og +MU +MU +MU +MU +MU +MU +wl +tg +tY +ED +tg +tg +tg +vl +Es +Es +Es +es +es +es +es +es +ED +tg +tg +tg +tg +vl +tg +tg +tg +tg +tg +tg +Es +Es +tc +"} +(32,1,1) = {" +eb +EW +rL +ap +ap +ap +ap +ap +lt +lt +ap +fY +yr +YB +ap +ap +ap +ap +YB +YB +YB +DT +kG +SG +SG +SG +SG +SG +gL +at +SG +Ex +kr +jv +pY +dW +pY +NN +pY +dW +pY +NN +pY +dW +Xm +kr +IM +VO +EM +KH +fA +hg +uM +eX +eX +eX +MY +ro +eX +Ny +Dv +WJ +Ny +RZ +UV +nZ +Em +nZ +Yc +LC +RI +kv +kv +kv +kv +RI +Fw +Fw +Fw +Fw +RI +cs +gI +Bz +jA +jA +jA +jA +jA +jA +jT +jA +jA +Bz +MU +YS +VH +VH +VH +VH +VH +VH +VH +YS +MU +MU +og +Ob +Ot +oC +og +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +tg +Wm +tg +tg +vl +Es +Es +Es +es +JH +KY +uO +es +tg +tg +vl +tg +wl +tg +vl +tg +ws +tg +vl +tg +Es +Es +tc +"} +(33,1,1) = {" +eb +EW +EW +ap +YO +YO +kN +YO +YO +YO +ap +YB +YB +YB +Uw +YB +ML +YB +YB +Oo +ap +DT +WV +kr +kr +pY +OO +kr +kr +kr +kr +kr +kr +jv +Px +vH +yi +pY +Px +vH +cL +pY +Px +vH +Un +kr +lr +Nb +Yi +KH +fA +QG +uM +eX +tQ +SB +MY +MY +Xf +WJ +WJ +WJ +Ny +RZ +dz +nZ +Em +nZ +qm +LC +lD +lD +lD +lD +lD +wk +lD +lD +lD +wk +lD +Oy +gI +Bz +Rq +jA +jA +jA +jT +jA +jA +jA +LP +Bz +MU +YS +YS +YS +YS +zZ +zZ +YS +YS +YS +MU +MU +og +Ob +Ot +LB +og +og +og +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +tg +tg +tg +wl +tg +Es +Es +es +UU +Vt +ju +Je +tg +tg +tg +tg +tg +tg +vl +tg +tg +tg +tg +vl +tg +Es +tc +"} +(34,1,1) = {" +sA +Af +EW +PA +YB +YB +YB +YB +YB +YB +ap +ap +ap +dP +ap +YB +af +bK +aJ +YB +ap +kc +WV +kr +EO +ht +ht +CZ +mt +HH +ef +XP +kr +cM +Jj +bI +vo +NN +Jj +bI +vo +NN +Jj +bI +KB +kr +NB +KH +KH +KH +ZK +QG +uM +eX +eP +SB +MY +MY +eX +Ny +Ny +WJ +Ny +RZ +km +nZ +Em +nZ +km +LC +gI +gI +gI +gI +gI +LC +LC +LC +LC +LC +gI +gI +gI +Bz +Bz +cB +Bz +em +jA +Bz +Bz +cB +Bz +Bz +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +og +GG +Ot +LB +FI +KX +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +vl +vl +tg +ys +tg +tg +tg +Es +es +ov +Vt +Qi +Je +tg +SW +fD +fD +fD +HG +tg +tg +wl +tg +vl +tg +wl +tg +tc +"} +(35,1,1) = {" +sA +EW +EW +ap +YO +YB +YB +YB +nE +si +ap +nk +ML +YB +ap +ap +ml +ap +ml +ap +ap +DT +WV +kr +Um +pY +pY +pY +pY +pY +pY +qa +kr +jv +pY +yA +pY +pY +pY +yA +pY +pY +pY +yA +MA +hh +KH +JD +CG +KH +fA +QG +uM +eX +Td +Td +Td +Td +Td +Td +Td +tM +Ny +RZ +km +nZ +Em +nZ +km +RZ +YE +YE +YE +YE +YE +YE +Ra +yH +RH +YE +YE +YE +YE +YE +YE +YE +YE +YE +Gm +YE +YE +YE +YE +YE +YE +YE +YE +YE +YE +YE +YE +YE +YE +MU +MU +MU +og +oN +Ot +gA +KX +OE +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +vl +tg +tg +tg +tg +tg +vl +es +es +ex +es +es +tg +FJ +WS +ZP +xv +FJ +tg +gP +gP +gP +gP +gP +tg +vl +tc +"} +(36,1,1) = {" +eb +hX +EW +ap +YO +YB +YB +YB +HA +Le +ap +nk +YB +YB +ap +ZT +NJ +NJ +NJ +NJ +NJ +lM +WV +kr +WO +pY +oP +fa +fF +pY +pY +As +hh +jv +pY +dW +pY +NN +pY +dW +pY +NN +pY +dW +MA +hh +AF +AF +AF +AF +Tr +DT +MH +UD +Td +Ho +oq +oq +ca +WL +Td +Dv +xT +RZ +km +nZ +Em +nZ +km +km +zy +zy +Xb +zy +zy +zy +zy +Bt +zy +bW +sW +fm +fm +IR +cd +zy +zy +zy +zy +zy +zy +Xb +zy +zy +zy +zy +zy +zy +zy +Xb +zy +zy +YE +MU +MU +MU +og +Ob +Ot +gA +KX +qK +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +vl +vl +tg +tg +tg +es +La +Vt +UQ +es +tg +FJ +nu +yj +PX +FJ +tg +gP +Eq +nO +Eq +gP +vl +tg +tc +"} +(37,1,1) = {" +eb +CO +UT +ap +ap +ap +dP +dP +ap +ap +ap +ap +Db +ap +ap +DT +JF +yn +yn +yn +yn +yn +aS +kr +fq +fl +Gq +Sy +jZ +pY +zK +cO +hh +jv +Px +vH +bA +pY +Px +vH +bA +pY +Px +vH +Un +kr +iq +uR +JD +KH +fA +QG +Ri +WV +NL +YD +YD +YD +YD +YD +kp +WJ +xT +Fu +km +nZ +Em +nZ +km +nZ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +hr +LN +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +zy +YE +MU +MU +MU +og +Ob +Ot +gA +KX +Aq +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +tg +es +OV +Vt +Rp +es +tg +FJ +nu +yj +PX +FJ +lb +gP +vg +Zg +mv +gP +tg +tg +tc +"} +(38,1,1) = {" +eb +rX +EW +ap +cx +cx +YB +YB +ML +YB +ap +ZT +NJ +Tz +NJ +lM +WV +ma +ma +Hw +jh +ma +ma +kr +CV +pY +pW +IB +iy +pY +pY +Me +hh +jv +ZV +bI +vo +NN +ZV +bI +vo +NN +Jj +bI +fd +kr +KH +nv +KH +KH +fA +rJ +dl +uM +Xv +Xv +JC +YD +JC +YD +Td +WJ +vv +km +km +nZ +Jh +XA +gC +XA +BE +BE +BE +BE +BE +BE +BE +BE +BE +BE +BE +Rx +Uh +BE +BE +BE +BE +BE +nb +yl +yl +yl +yl +yl +yl +yl +yl +yl +yl +Uu +rQ +zy +YE +MU +MU +MU +og +Ob +Ot +gA +KX +KX +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +es +es +ta +Vt +wQ +tg +FJ +nu +yj +PX +FJ +tg +HJ +Lg +Zg +mv +gP +tg +vl +tc +"} +(39,1,1) = {" +sA +EW +ap +ap +wG +YB +YB +mS +Aw +YB +ut +DT +JF +yn +yn +yn +aS +ma +ek +BP +BP +jQ +be +kr +kr +pY +pY +pY +pY +pY +pY +li +kr +jv +pY +yA +pY +pY +pY +yA +pY +pY +pY +yA +MA +kr +xz +xz +xz +xz +xz +xz +DT +WV +Td +Dg +JC +YD +JC +gz +Td +WJ +WJ +km +km +nZ +Em +nZ +km +nZ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +mQ +rQ +rQ +rQ +hr +LN +rQ +rQ +rQ +rQ +rQ +Zp +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +jL +rQ +zy +YE +MU +MU +MU +og +Ob +Ot +LB +jj +GR +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +wl +tg +es +Qi +LT +LT +tg +FJ +nu +yj +PX +FJ +lb +gP +hv +Zg +UO +gP +sF +wl +tc +"} +(40,1,1) = {" +sA +EW +ap +Xd +bK +YB +YB +qM +Bw +nQ +nQ +DT +WV +ma +ma +ma +ma +ma +QH +Hw +Hw +Hw +Mu +kr +jp +pY +pY +pY +pY +wF +vA +QL +kr +Iy +Yw +vA +NN +NN +pY +dW +pY +NN +pY +dW +Xm +kr +pi +eH +pi +eH +MP +xz +DT +WV +Td +fQ +JC +YD +JC +YD +Td +WJ +xT +DV +al +iu +Em +nZ +km +km +zy +zy +Io +zy +zy +zy +Bt +Hj +zy +cq +Di +fm +fm +ga +xC +zy +zy +rQ +Zp +rQ +zy +zy +zy +zy +zy +zy +zy +zy +rQ +jL +rQ +zy +YE +MU +MU +MU +og +Ob +Ot +LB +og +og +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +RM +tg +tg +es +es +zA +es +tg +FJ +nu +yj +PX +FJ +tg +gP +Eq +BT +Zg +MD +tg +tg +tc +"} +(41,1,1) = {" +eb +UT +ap +ap +cx +cx +YB +YB +Ip +HC +ap +DT +WV +ma +xF +sd +xy +ma +gx +Hw +XS +Hw +qb +kr +gh +vw +NN +wF +gg +Wt +kr +kr +kr +hh +kr +kr +Ig +pY +Px +vH +bA +pY +XK +vH +Un +kr +SN +vS +RJ +tj +Kc +xz +kc +WV +Td +XO +YD +YD +YD +YD +Td +WJ +xT +RZ +km +nZ +Em +nZ +km +RZ +YE +YE +YE +YE +YE +YE +eW +ch +Ra +YE +YE +YE +YE +YE +YE +YE +zy +rQ +Zp +rQ +zy +YE +YE +YE +YE +YE +YE +xC +rQ +jL +rQ +cq +YE +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +ED +tg +es +es +es +tg +FJ +nu +yj +PX +FJ +tg +gP +gP +gP +gP +gP +tg +tg +tc +"} +(42,1,1) = {" +eb +EW +EW +ap +ap +ap +lt +lt +ap +ap +ap +DT +WV +ma +Lw +Hw +KO +ma +JV +Hw +te +Hw +cU +kr +kr +kr +jv +OJ +kr +kr +kr +Lh +jr +CZ +CC +fq +vy +NN +Jj +bI +vo +NN +Jj +bI +uv +kr +NQ +VN +xk +DU +EH +xz +DT +WV +Td +GD +Td +Td +Td +Td +Td +WJ +Ny +RZ +km +nZ +Em +nZ +km +RZ +MU +MU +MU +MU +MU +YE +YE +YE +YE +YE +MU +MU +MU +MU +MU +YE +zy +rQ +Zp +rQ +zy +YE +MU +MU +MU +MU +YE +it +rQ +jL +rQ +nj +YE +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +vl +ZW +MU +MU +MU +MU +MU +MU +MU +vl +tg +tg +tg +tg +tg +FJ +nu +yj +PX +FJ +wl +tg +tg +tg +tg +vl +tg +tg +tc +"} +(43,1,1) = {" +sA +EW +EW +Fx +ke +ke +ke +ke +Fy +wA +NJ +lM +WV +ma +Cs +gB +wm +ma +ZF +NC +Hw +Hw +Cq +ma +MU +kr +jv +sx +ht +eF +ef +BH +pY +NN +cO +hh +vy +pY +pY +yA +pY +pY +pY +yA +MA +hh +GB +hc +RJ +tj +Kc +xz +ZL +kb +Td +oU +Dt +Ha +oU +or +Ny +WJ +Ny +RZ +km +nZ +Em +nZ +km +RZ +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +YE +zy +rQ +Zp +rQ +zy +YE +MU +MU +MU +MU +YE +fm +Tt +Tt +Tt +fm +YE +MU +MU +MU +og +oN +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +ws +tg +tg +tg +MU +MU +MU +MU +MU +MU +vl +tg +tg +wl +vl +tg +FJ +nu +yj +PX +FJ +tg +tg +vl +tg +tg +tg +wl +tg +tc +"} +(44,1,1) = {" +sA +EW +EW +Af +BU +ke +ke +ke +Fy +QG +kG +yn +aS +ma +ma +BM +ma +ma +ma +hU +NC +cc +Ty +ma +MU +JP +jv +pY +pY +pY +pY +pY +En +zK +FT +hh +vy +NN +pY +NN +pY +NN +pY +NN +MA +hh +pi +Tk +xk +ZE +xk +HV +ZL +kb +xN +Sj +vm +ni +lQ +or +VK +WJ +Ny +RZ +MZ +nZ +Em +nZ +PP +RZ +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +YE +zy +rQ +Zp +rQ +zy +YE +MU +MU +MU +MU +YE +fm +DL +DL +DL +fm +YE +MU +MU +MU +og +Ob +Ot +LB +og +og +og +MU +MU +MU +MU +MU +MU +Rh +Rh +Rh +vl +tg +tg +tg +vl +wl +vl +MU +tg +ws +tg +tg +Wm +tg +FJ +nu +yj +PX +FJ +tg +ED +Es +Es +Es +tg +tg +vl +tc +"} +(45,1,1) = {" +sA +ke +EW +EW +EW +EW +EW +ke +wq +Gz +JR +ma +ma +ma +lk +BP +kU +Nf +ma +ma +ea +cG +ma +ma +wq +JP +dY +NN +zK +cu +Ug +NN +VA +NN +cO +hh +vy +pY +pY +pY +RD +pY +pY +RD +MA +kr +GB +td +GB +td +Rf +xz +ZL +kb +xN +Sj +ni +aT +lQ +Td +WJ +WJ +Ny +RZ +iA +nZ +Em +nZ +Gv +RZ +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +YE +oA +rQ +Zp +rQ +qN +YE +MU +MU +MU +MU +YE +dr +rQ +jL +rQ +UP +YE +MU +MU +MU +og +Ob +Ot +gA +KX +EX +og +MU +MU +MU +MU +MU +oi +ic +ic +Rh +Rh +Rh +Rh +tg +tg +tg +tg +tg +tg +ED +tg +tg +tg +tg +FJ +nu +yj +PX +FJ +tg +Es +Es +Es +Es +tg +tg +tg +tc +"} +(46,1,1) = {" +sA +CO +QD +EW +CO +CO +sO +CO +CO +Gz +Lm +ma +ek +BP +kg +Hw +Hw +cK +BP +fb +kg +ZB +LL +eM +Lz +fq +RW +pY +zK +xn +Ug +pY +pY +wF +nS +kr +He +Yw +IE +je +Hr +jk +HZ +je +vd +kr +xz +xz +xz +xz +xz +xz +ZL +kb +Td +oU +hp +hp +kq +Td +gT +WJ +Ny +RZ +Ac +LZ +Ar +LZ +Ac +RZ +MU +MU +MU +MU +MU +MU +QC +QC +QC +Wa +Wa +Wa +QC +QC +QC +QC +Bu +Ll +Kj +Ll +Bu +QC +QC +QC +QC +MU +YE +cd +rQ +jL +rQ +bW +YE +YE +YE +YE +og +JU +qF +JU +tB +bZ +KX +og +og +og +og +og +ic +ic +AG +ic +ic +ic +Rh +tg +tY +tg +tg +tg +tg +tg +tg +tg +tg +vl +FJ +nu +yj +PX +FJ +tg +Es +Es +Es +RM +tg +tg +ys +tc +"} +(47,1,1) = {" +sA +CO +CO +Zo +CO +fL +ww +ww +CO +Gz +Lm +ma +FV +Hw +Hw +Hw +Cr +Hw +UG +UG +UG +Eu +UG +ZL +Lm +hh +su +NN +zK +cu +Ug +NN +pY +Xm +kr +kr +xw +OO +kr +iZ +iZ +kr +iZ +iZ +kr +kr +eM +ba +hF +ba +ba +ba +IF +Rm +Td +Td +Td +Fp +Td +Td +tM +pG +Ny +RZ +Ac +nf +tV +nf +Ac +RZ +MU +MU +MU +MU +MU +MU +QC +jG +Ll +Ed +dF +nJ +GU +sT +Qb +fo +Bu +Ll +Kj +Ll +Bu +aW +Ll +jm +QC +MU +YE +zy +rQ +jL +rQ +zy +zy +zy +zy +zy +JU +Ob +wn +LB +JU +nI +nI +JU +JU +JU +JU +JU +Eo +ic +lu +lu +ic +oi +Rh +Rh +tg +tg +tg +tg +tg +vl +tg +tg +tg +tg +FJ +nu +yj +PX +FJ +vl +tg +tg +vl +vl +tg +tg +vl +tc +"} +(48,1,1) = {" +sA +CO +Vj +EW +CO +Df +ww +ww +Ey +Gz +Lm +LL +ea +Hw +Hw +hK +ma +rl +UG +Hw +Hw +oG +ma +Gz +Lm +kr +Pu +pY +pY +pY +pY +pY +pY +sl +kr +Ws +Nm +Nm +Nm +Nm +Nm +kL +Nm +Nm +Nm +Nm +IF +bz +Ud +Ud +Ud +Ud +Ud +fT +PW +WJ +WJ +WJ +Dv +WJ +WJ +Ny +Ny +RZ +UV +nZ +Em +nZ +Yc +RZ +MU +MU +MU +MU +MU +MU +QC +Ll +Ll +sG +Ll +Ll +Ll +Ll +Ll +fo +Bu +Ll +Kj +Ll +Bu +Bi +Ll +ZH +Wa +MU +YE +zy +rQ +jL +rQ +rQ +rQ +rQ +rQ +rQ +Ua +JU +nI +JU +Ua +Ua +Ua +Ua +Ua +Ua +Ua +Ua +lu +lu +lu +ic +lu +ic +ic +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +FJ +nu +yj +PX +FJ +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +tc +"} +(49,1,1) = {" +sA +ke +EW +EW +CO +CO +CO +ww +CO +sb +Lm +Hw +ea +Hw +Hw +mH +ma +jn +Hw +Mh +Hw +Gn +ma +Gz +Lm +hh +Lx +NN +pY +NN +pY +dW +pY +Ck +kr +Gz +Vs +gp +gp +gp +NT +Dl +Dl +Dl +Dl +Dl +Dl +fT +wq +wq +wq +wq +wq +wq +wq +Ny +Fs +WJ +WJ +WJ +OT +Ny +Ny +RZ +dz +nZ +Em +nZ +qm +RZ +MU +MU +MU +MU +MU +MU +Wa +Ll +Ll +XE +Ll +Ll +Ll +Ll +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +Ll +AL +Wa +MU +YE +zy +rQ +RY +yl +yl +yl +yl +yl +yl +lZ +cm +cm +cm +lZ +lZ +lZ +lZ +lZ +lZ +lZ +lZ +lK +lK +Fi +lK +lK +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +ST +de +de +de +ST +Fi +Fi +Fi +Fi +Fi +Fi +Fi +Fi +tc +"} +(50,1,1) = {" +sA +ke +jK +EW +CO +fR +Ya +ww +CO +SX +Lm +ma +Ss +Hw +Hw +Hw +ma +Cz +Hw +Wo +Hw +Vd +ma +SX +Lm +kr +If +Yw +Yw +vA +kA +Kd +HX +Ry +kr +SX +bz +Dl +Dl +AD +kb +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +MU +MU +MU +MU +Ny +Ny +Ny +Ny +Ny +Ny +Ny +Ny +RZ +km +nZ +Em +nZ +km +RZ +MU +MU +MU +MU +MU +MU +Wa +Ll +Ll +Ll +Ll +zi +Ll +Zu +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +oJ +nJ +Wa +MU +YE +zy +rQ +rQ +rQ +rQ +rQ +rQ +rQ +rQ +Ua +JU +eg +JU +Ua +Ua +Ua +Ua +Ua +Ua +Ua +Ua +lu +lu +lu +lu +lu +ic +ic +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +FJ +nu +yj +PX +FJ +Rh +Rh +Rh +Rh +Rh +Rh +Rh +Rh +tc +"} +(51,1,1) = {" +sA +ke +EW +EW +CO +ke +ke +CO +CO +Gz +Lm +ma +he +Hw +Hw +Hw +rf +Hw +Hw +Mh +Hw +iR +ma +Gz +Lm +kr +kr +pY +OO +kr +kr +hh +hh +kr +kr +Gz +Lm +ze +ze +Gz +kb +RZ +vc +Cy +vc +aO +Vr +ZD +ru +rN +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +km +nZ +Em +nZ +km +RZ +RZ +RZ +RZ +MU +MU +MU +QC +rT +Ll +Ll +Fg +QC +Ll +Ll +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +Ll +Ll +Wa +MU +YE +oO +zy +zy +zy +TG +zy +TG +zy +zy +JU +Ob +vU +LB +JU +eg +eg +tm +JU +JU +JU +JU +Eo +lu +ic +lu +ic +ic +Rh +Rh +tg +tg +tg +vl +tg +tg +tg +tg +tg +vl +FJ +nu +yj +PX +FJ +vl +tg +tg +tg +tg +vl +tg +tg +tc +"} +(52,1,1) = {" +sA +CO +UT +EW +ke +MU +MU +MU +wq +Gz +Lm +ma +xS +Bl +Bl +Bl +Hw +Hw +Hw +Wo +Hw +PO +ma +Gz +Cb +ba +ba +ba +ba +ba +hF +ba +ba +ba +ba +zb +Lm +ze +ze +Gz +kb +RZ +lz +lz +lz +lz +lz +lz +lz +rN +RZ +km +km +km +km +km +km +km +km +an +km +km +km +km +km +nZ +Em +nZ +km +hQ +sU +sU +RZ +MU +MU +MU +QC +xf +Ll +Ll +ac +QC +Ll +Za +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +Lv +Qw +QC +MU +YE +YE +YE +YE +YE +YE +Gm +YE +YE +YE +og +JU +qF +JU +Oq +KX +KX +og +og +og +og +og +ic +oi +ic +ic +oi +ic +Rh +tg +tg +tg +tg +tg +tg +wl +tg +vl +tg +ys +FJ +nu +yj +PX +FJ +Es +Es +Es +vl +tg +tg +tg +Es +tc +"} +(53,1,1) = {" +sA +CO +EW +EW +ke +MU +MU +MU +wq +Gz +Lm +ma +gc +AH +AH +gZ +Dm +Fd +vz +Ph +gB +Rv +ma +Gz +bz +Ud +Ud +Ud +Ud +Ud +Ud +zU +Vs +Vs +Vs +Vs +Cb +ba +ba +zb +kb +oY +lz +sg +lz +TR +rN +DJ +lz +aC +RZ +km +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +Em +nZ +km +hQ +hQ +hQ +RZ +MU +MU +MU +QC +nR +Ll +Ll +Ll +OH +Ll +Ll +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +Ll +Ll +QC +MU +MU +MU +MU +MU +aE +aE +Dj +aE +MU +MU +og +Ob +Ot +gA +KX +EX +og +MU +MU +MU +MU +ic +ic +ic +AG +Rh +Rh +Rh +Rh +tg +vl +MU +vl +vl +tg +tg +Wm +tg +tg +tg +FJ +nu +yj +PX +FJ +Es +Es +Es +tg +tY +tg +wl +Es +tc +"} +(54,1,1) = {" +sA +ke +EW +Af +ke +ke +CO +CO +CO +Gz +Lm +ma +ma +ma +ma +ma +ma +ma +ma +ma +ma +ma +ma +Gz +Lm +KW +iC +wC +DC +iC +KW +Gz +NT +Dl +Dl +Dl +Dl +Dl +Dl +Dl +iL +RZ +lz +lz +lz +lz +rN +sw +lz +cZ +RZ +km +nZ +qq +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +XA +KZ +nZ +km +hQ +hQ +Uq +RZ +MU +MU +MU +QC +dS +Ll +Ll +Ll +Ll +Ll +Ll +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +Ll +Ll +QC +MU +MU +MU +MU +oL +oL +Dj +Dj +oL +MU +MU +og +Ob +Ot +LB +og +og +og +MU +MU +MU +MU +MU +MU +MU +ic +Rh +tg +tg +tg +ZW +MU +MU +MU +vl +tg +tg +tg +ED +tg +tg +FJ +nu +yj +PX +FJ +Es +Es +vl +ED +tg +tg +Es +Es +tc +"} +(55,1,1) = {" +sA +ke +EW +EW +EW +EW +EW +EW +st +Gz +Cb +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +zb +Lm +iC +jB +qP +Zc +nd +AA +Gz +kb +ze +wq +wq +wq +wq +wq +wq +wq +RZ +FH +lz +lz +lz +lz +lz +lz +dq +RZ +km +nZ +Em +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +Em +nZ +km +hQ +hQ +sU +RZ +MU +MU +MU +QC +MR +Ll +Ll +Ll +Ll +Ll +Ll +kn +fo +Bu +Ll +Kj +Ll +Bu +pb +Ll +xf +QC +oL +oL +aE +pF +Ht +Dj +Dj +ir +oL +MU +MU +og +oN +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +vl +MU +MU +MU +MU +MU +tg +tg +tg +vl +tg +tg +tg +FJ +nu +yj +PX +FJ +Es +Es +tg +tg +tg +Es +Es +Es +tc +"} +(56,1,1) = {" +sA +ke +aA +EW +EW +EW +EW +FP +CO +WY +Ud +co +Ud +Ud +Ud +Ud +Ud +Ud +zU +Vs +Vs +Vs +Vs +Vs +Lm +iC +fy +aH +ny +IG +ud +Gz +kb +ze +ze +wq +wq +ze +RZ +RZ +RZ +RZ +RZ +np +np +np +np +np +np +RZ +RZ +km +nZ +Em +nZ +km +km +km +km +vX +km +km +km +km +km +nZ +Em +nZ +km +hQ +sU +sU +RZ +MU +MU +MU +QC +zf +Ll +Ll +Ll +tP +Ll +Ll +Ll +fo +Bu +Ll +Kj +Ll +Bu +pb +Ll +Ll +QC +Dj +Dj +Dj +Dj +Dj +uz +Dj +sf +oL +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +tg +tg +ws +tg +tg +vl +wl +FJ +nu +yj +PX +FJ +tg +tg +tg +vl +vl +Es +Es +Es +tc +"} +(57,1,1) = {" +sA +CO +CO +Zo +RA +RA +RA +RA +RA +GW +RA +RA +qX +OA +RA +RA +RA +RA +dV +MI +Eh +AD +gp +gp +Lm +KW +KW +xa +KW +Np +KW +Gz +gD +ba +ba +ba +ba +Lz +Er +bm +VM +Zr +KA +bm +bm +bm +bm +bm +bm +bm +VM +al +iu +Em +nZ +km +LS +LS +LS +LS +LS +LS +LS +LS +km +nZ +Em +nZ +km +RZ +RZ +RZ +RZ +MU +MU +MU +Wa +Ll +Ll +Ll +ac +QC +Ll +Ll +Ll +fo +Bu +Ll +Kj +Wp +vK +zJ +Wp +Wp +tE +Kr +Ci +Kr +Kr +pq +Dj +iP +aE +aE +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +RM +tg +tg +tg +tg +tg +tg +tg +tg +FJ +nu +yj +PX +FJ +tg +wl +tg +vl +Es +Es +Es +Es +tc +"} +(58,1,1) = {" +sA +CO +bl +EW +PN +RA +Sv +uC +LQ +CH +RA +ND +LQ +LQ +xR +rm +LK +RA +RA +RA +RA +dV +Dl +AD +Cb +Lz +KW +iC +KW +eM +ba +zb +gp +gp +gp +gp +gp +kb +RZ +bm +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +km +nZ +Em +nZ +km +LS +Ju +ln +to +Et +to +IY +LS +km +nZ +Em +nZ +km +RZ +MU +MU +MU +MU +MU +MU +Wa +Ll +Ll +Ll +Fg +QC +Ll +Ll +Ll +fo +Bu +Ll +Wp +Ll +Bu +pb +Ll +Qw +QC +oL +oL +aE +aE +oL +oL +oL +aE +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +qo +oQ +pO +pO +pO +pO +pO +oQ +Gl +nw +HB +oH +Gl +oQ +oQ +oQ +oQ +wD +wD +wD +wD +zw +"} +(59,1,1) = {" +sA +rC +EW +EW +PN +Sv +fh +qX +qX +gm +RA +kP +qX +qX +qX +MX +xV +en +xR +ku +RA +RA +RA +WY +zU +gD +ba +ba +ba +zb +NT +Dl +Dl +Dl +Dl +MI +Dl +fT +Er +dw +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +km +nZ +Em +nZ +km +LS +QK +QK +to +QK +to +QK +LS +km +nZ +Em +nZ +km +RZ +MU +MU +MU +MU +MU +MU +Wa +Wp +Wp +Wp +Wp +Wp +Wp +Wp +Wp +sI +Bu +Bu +vK +Bu +Bu +pb +Ll +ac +QC +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +og +er +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +gY +oQ +oQ +pO +CX +EI +FN +pO +qo +Gl +nw +HB +oH +Gl +oQ +qo +oQ +wD +wD +wD +wD +wD +zw +"} +(60,1,1) = {" +sA +EW +EW +cJ +PN +sR +rt +rt +rt +KL +RA +DQ +Wk +qX +qX +qX +qX +qX +MX +xV +LR +fk +RA +RA +ZL +NT +MI +Dl +Dl +Dl +ZM +rc +rc +rc +rc +rc +rc +rc +rc +Kf +km +km +km +Yl +Yl +jW +Yl +jW +Yl +Yl +km +km +nZ +Em +nZ +km +LS +pw +xW +fJ +pP +QX +KF +LS +MZ +nZ +Em +nZ +PP +RZ +MU +MU +MU +MU +MU +MU +QC +Wp +Ll +Pp +Ll +Ll +Rz +Ll +gV +vT +St +St +St +zt +zt +OI +Ll +Cp +og +og +og +og +og +og +og +og +og +og +og +og +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +qo +oQ +pO +pO +pO +Aa +Vv +Vv +pO +oQ +Gl +nw +HB +oH +Gl +oQ +oQ +wD +wD +wD +wD +wD +wD +zw +"} +(61,1,1) = {" +sA +EW +EW +RA +RA +RA +Sx +RA +RA +RA +RA +dT +qX +qX +qX +qX +qX +qX +qX +qX +qX +xV +xh +RA +ZL +kb +rc +rc +rc +rc +rc +rc +Xh +LM +TN +TN +LM +Ba +rc +Kf +km +nZ +nZ +cf +Ac +Ac +Ac +Ac +Ac +cf +nZ +nZ +nZ +Em +nZ +km +LS +Pl +Ca +MM +MM +WF +eQ +LS +iA +nZ +Em +nZ +Gv +RZ +MU +MU +MU +MU +MU +MU +QC +bD +Ll +vP +Ll +Ll +go +Ll +ey +Ll +Ll +Ll +Ll +Ll +Ll +Ll +Ll +Ll +og +wP +lw +JU +eg +oW +eg +eg +eg +eg +eg +eg +eg +eg +qF +JU +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +pO +wW +Hp +Ps +Ps +Vv +Kp +oQ +Gl +nw +HB +oH +Gl +oQ +wD +wD +wD +wD +wD +wD +wD +zw +"} +(62,1,1) = {" +eb +EW +EW +RA +eV +LQ +LQ +LQ +lU +dv +od +cS +qX +Hm +Wg +mg +tp +Dd +eA +Hm +qX +qX +xA +od +ZL +kb +rc +OY +Ap +Ko +GL +rc +vk +Qg +Qg +Qg +Qg +IZ +rc +Is +km +nZ +Hk +cf +Ac +Ac +Xu +Ac +Ac +cf +Hk +Hk +Hk +ib +nZ +dx +LS +Ag +Cl +pP +ux +Xw +FB +Ul +Ac +LZ +Ar +LZ +Ac +RZ +MU +MU +MU +MU +MU +MU +QC +Ll +Ll +Zs +zi +Ll +tb +Ll +oz +kV +oJ +ac +dF +Fg +OH +Ll +zi +Ll +SC +Ob +Ov +JO +Ot +Ot +Ot +Ot +Ot +Ot +Ot +Ot +Ot +Ot +Ui +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +qo +oQ +oQ +qo +ql +Ps +Ps +Ps +Ps +Ps +Ps +qo +Gl +nw +HB +oH +Gl +oQ +wD +wD +wD +wD +wD +wD +wD +zw +"} +(63,1,1) = {" +eb +EW +EW +RA +yJ +qX +RA +uY +gw +fs +od +BY +Wk +eA +rd +On +Mn +yF +Hm +Wg +Wk +qX +gm +Ds +ZL +kb +rc +fH +RE +cV +Sa +zm +nA +cV +eN +eN +eN +tl +dK +Kf +km +nZ +nZ +cf +Ac +Ac +Ac +Ac +Ac +cf +nZ +nZ +nZ +Em +nZ +km +LS +Ag +to +bC +to +SR +WF +eQ +Ac +nf +tV +nf +Ac +RZ +nN +no +no +nN +nN +nN +nN +qe +nN +nN +nN +nN +nN +nN +nN +nN +nN +nN +nN +nN +Wa +Wa +QC +QC +og +Ob +Ot +LB +nI +nI +nI +nI +nI +nI +nI +nI +nI +lP +vV +JU +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +qo +nY +oQ +oQ +pO +wW +hf +zn +DS +iF +pO +oQ +Gl +nw +HB +oH +Gl +qo +wD +oQ +qo +qo +wD +wD +wD +zw +"} +(64,1,1) = {" +sA +EW +Af +RA +ag +rt +rt +rt +rt +Jc +od +Uj +qX +Wg +eA +UB +hy +Mt +Wg +eA +my +my +df +my +ZL +kb +rc +fH +RE +eN +pl +rc +Qe +Qg +Qg +Qg +Qg +tl +rc +Kf +km +km +km +Yl +Yl +jW +Yl +jW +Yl +Yl +km +km +nZ +Em +nZ +km +LS +LS +tx +bC +to +SR +WF +LS +UV +nZ +Em +nZ +Yc +RZ +Ai +NR +sc +Bg +nN +aF +wT +AN +AN +AN +aF +AN +wT +AN +aF +AN +AN +wT +aF +nN +MU +MU +MU +MU +og +Ob +Ot +LB +og +og +og +og +PB +CD +UA +og +og +og +og +og +og +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +MU +MU +MU +oQ +oQ +qo +oQ +pO +pO +pO +pO +pO +pO +pO +qo +Gl +nw +HB +oH +Gl +qo +oQ +oQ +oQ +qo +qo +wD +wD +zw +"} +(65,1,1) = {" +sA +jK +RA +RA +RA +RA +Sx +RA +RA +RA +RA +sR +rt +jt +qX +qX +qX +qX +qX +qX +my +qX +if +od +ZL +kb +rc +uh +cV +eN +Bo +rc +Qe +cV +eN +eN +eN +tl +dK +eR +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +km +nZ +Em +nZ +km +km +yk +ue +pP +fJ +ux +Xw +LS +dz +nZ +Em +nZ +qm +RZ +yM +uS +Az +GN +zh +Nx +XQ +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +VE +nN +MU +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +og +KX +TU +rh +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +qo +jF +oQ +qo +oQ +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +gY +oQ +qo +qo +Gl +nw +HB +oH +Gl +oQ +oQ +oQ +oQ +oQ +oQ +wD +wD +zw +"} +(66,1,1) = {" +sA +EW +RA +VY +QB +lU +CH +RA +gs +PQ +RA +RA +RA +hq +yc +hj +my +my +my +my +my +qX +Ne +RA +ZL +kb +rc +ig +cV +eN +Mw +rc +gH +cV +fP +Ky +eN +pl +rc +bm +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +fx +RZ +tk +gd +hD +cp +cp +DM +al +RZ +ob +RT +RT +to +Yq +LS +km +nZ +Em +nZ +km +UL +yM +Az +Az +GN +zh +Nx +XQ +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +VE +nN +MU +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +og +og +og +og +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +Ef +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +gY +oQ +oQ +qo +oQ +oQ +oQ +oQ +oQ +oQ +oQ +Gl +nw +HB +oH +Gl +jF +oQ +oQ +gY +oQ +oQ +oQ +wD +zw +"} +(67,1,1) = {" +eb +EW +RA +QO +Qj +Wk +gm +Ds +UW +qS +Id +PQ +RA +RA +RA +hN +lv +of +jt +Dz +qX +gw +Vi +RA +ZL +Rm +rc +pM +oT +uW +JN +rc +we +fB +Nn +iv +Cd +MS +rc +dw +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +km +nZ +Em +nZ +km +al +pt +gk +RT +RT +to +Yq +LS +km +nZ +Em +nZ +km +RZ +yY +Az +Az +GN +zh +Nx +XQ +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +VE +nN +MU +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +qo +oQ +gY +oQ +oQ +oQ +oQ +oQ +LV +LV +LV +MK +MK +LV +LV +LV +oQ +Gl +nw +HB +oH +Gl +oQ +qo +qo +oQ +oQ +nY +oQ +wD +zw +"} +(68,1,1) = {" +eb +Zo +RA +Jr +rt +iH +xQ +qX +Bv +vt +Bk +sv +RA +RA +RA +Ro +PI +RA +xi +Gr +HN +pL +vE +RA +ZL +kb +rc +rc +VI +rc +rc +rc +rc +rc +nA +zS +rc +rc +rc +Kf +km +km +km +Yl +Yl +Ac +Yl +Ac +Yl +Yl +km +km +nZ +Em +nZ +km +RZ +RZ +yG +KI +pw +Oe +vs +LS +km +nZ +Em +nZ +km +RZ +fr +Zf +jo +Ke +nN +Nx +XQ +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +VE +nN +MU +MU +MU +MU +og +Ob +Ot +zM +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +gY +oQ +qo +oQ +PY +oQ +oQ +oQ +oQ +oQ +oQ +oQ +LV +eU +eE +Xn +Qk +os +BZ +LV +oQ +Gl +nw +HB +jy +Gl +oQ +PY +qo +oQ +oQ +oQ +oQ +wD +zw +"} +(69,1,1) = {" +sA +EW +RA +RA +RA +CO +CO +CO +CO +CO +UW +sv +RA +RO +LQ +fh +gm +RA +od +RA +od +RA +RA +RA +ZL +kb +rc +ry +LU +LM +TN +DY +LU +GK +ye +KG +LM +qz +rc +Is +km +nZ +nZ +vh +Ac +Ac +Ac +Ac +Ac +vh +nZ +nZ +nZ +Em +nZ +km +RZ +Vp +hm +WF +eQ +ec +vs +LS +km +nZ +Em +nZ +km +RZ +nN +nN +vY +nN +nN +nN +Zd +Jp +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Fm +nN +MU +MU +MU +MU +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +jF +oQ +LV +gb +Mg +Lt +Mg +Zw +Mg +AV +gY +Gl +nw +HB +oH +Gl +oQ +oQ +oQ +oQ +oQ +oQ +qo +wD +zw +"} +(70,1,1) = {" +sA +EW +EW +ke +ke +CO +ky +NM +BW +CO +UW +sv +RA +Km +qX +qX +xV +LQ +LQ +lU +KM +dm +RA +In +Wx +yg +rc +oR +cV +cV +fi +fi +AK +qh +eN +cV +eN +HT +rc +SH +km +nZ +Hk +vh +Sh +eI +Ac +Sh +eI +vh +Hk +Hk +Hk +ib +nZ +dx +RZ +RZ +LS +ja +ja +ja +LS +LS +km +nZ +Em +nZ +km +RZ +no +nN +Qy +QU +QU +oF +GI +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +VE +nN +og +og +og +og +og +Ob +Ot +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +qo +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +wD +wD +oQ +oQ +LV +TB +Sm +os +om +DI +Ae +LV +bu +Gl +nw +HB +oH +Gl +oQ +oQ +oQ +Vx +oQ +oQ +qo +wD +zw +"} +(71,1,1) = {" +eb +EW +EW +EW +sY +CO +RV +fu +fu +dc +Qc +sv +RA +Kh +qX +Dz +Dz +Dz +Dz +qX +qX +Ur +RA +UW +vZ +TK +ZY +nA +cV +eN +kM +mc +JJ +rc +xI +cV +cV +Sa +ZY +Kf +km +nZ +nZ +vh +Ac +Ac +Ac +Ac +Ac +vh +nZ +nZ +nZ +Em +nZ +km +RZ +nx +Hh +QT +QT +Ca +Zj +LS +Fu +nZ +Em +nZ +NF +RZ +no +nN +Nh +Az +wv +zo +GI +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +VE +AN +eg +eg +eg +eg +eg +eg +qF +JU +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +Vx +oQ +oQ +qo +qo +wD +wD +wD +oQ +oQ +LV +LV +MK +MK +LV +LV +LV +LV +oQ +Gl +nw +HB +oH +Gl +Ef +qo +EQ +oQ +oQ +oQ +oQ +GO +zw +"} +(72,1,1) = {" +eb +Ej +EW +EW +EW +CO +wc +fu +zc +CO +Qc +rW +RA +Ro +qX +Qj +TC +Qj +Iu +qX +qX +mo +RA +UW +vZ +sv +eN +Qe +eN +eN +mc +rp +mc +rc +II +cV +eN +tl +eN +UM +km +km +km +Yl +Yl +Ac +Yl +Ac +Yl +Yl +km +km +nZ +Em +nZ +km +RZ +RZ +yz +JL +TP +to +bE +LS +km +nZ +Em +nZ +km +RZ +no +nN +Ms +Az +Az +uo +GI +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +NK +XQ +Ot +Ot +Ot +Ot +Ot +Ot +Ui +LB +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +GO +oQ +oQ +oQ +oQ +oQ +oQ +wD +wD +wD +bu +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +oQ +Gl +nw +HB +oH +Gl +qo +qo +oQ +oQ +oQ +oQ +oQ +oQ +zw +"} +(73,1,1) = {" +sA +ke +CO +EW +EW +CO +fN +fu +aZ +CO +Qc +sv +od +Ro +qX +Qj +Tv +ab +Qj +qX +qX +gm +Ds +UW +vZ +yg +rc +rn +eN +eN +rB +rB +rB +tH +eN +cV +eN +HU +rc +pQ +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +km +nZ +Em +nZ +km +km +yk +ec +lp +Ja +to +pN +LS +km +nZ +Em +nZ +km +RZ +no +nN +xO +Az +wv +BS +GI +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +VE +lc +nI +nI +lP +nI +vV +nI +nI +JU +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +qo +oQ +wD +wD +wD +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +oQ +qo +oQ +Ef +Gl +nw +HB +oH +Gl +oQ +oQ +oQ +oQ +oQ +qo +oQ +qo +zw +"} +(74,1,1) = {" +Qv +MU +ke +EW +EW +CO +CO +Vl +CO +CO +Qc +sv +od +Ro +qX +MX +MX +MX +MX +qX +qX +gm +qX +UW +vZ +sv +rc +Fr +rK +uW +JY +uW +uW +uW +Zq +Xa +XW +xg +rc +tk +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +fx +RZ +tk +gd +hD +cp +hD +yp +km +RZ +bf +pw +pw +Oe +Xq +LS +km +nZ +Em +nZ +km +RZ +no +nN +db +jo +jo +dZ +GI +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +VE +nN +og +og +og +og +og +og +og +og +og +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +PY +oQ +oQ +gY +oQ +oQ +oQ +oQ +oQ +Gl +nw +HB +oH +Gl +oQ +oQ +oQ +es +es +Je +es +es +zw +"} +(75,1,1) = {" +Qv +MU +ke +Af +EW +EW +EW +Kq +Wq +CO +Qc +sv +RA +CN +jt +qX +qX +qX +qX +lv +of +fE +RA +UW +vZ +rW +rc +rc +rc +rc +rc +rc +rc +rc +Qe +iS +rc +rc +rc +eB +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +km +nZ +Em +nZ +km +km +yk +pU +QT +QT +JE +pw +LS +km +nZ +Em +nZ +km +RZ +nN +nN +vY +nN +nN +nN +xt +Jp +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Fm +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +qo +zW +zW +zW +zW +zW +qo +Gl +nw +HB +oH +Gl +qo +es +es +es +jN +LT +ov +es +zw +"} +(76,1,1) = {" +Qv +MU +CO +Aj +EW +mJ +TM +Kq +Xs +CO +Qc +sv +RA +RA +Ti +tL +rt +rt +rt +BX +RA +RA +RA +UW +vZ +qS +un +RQ +RQ +RQ +RQ +rc +mB +Pt +jX +KG +TN +dU +rc +UM +km +km +km +Yl +Yl +jW +Yl +km +km +km +km +km +nZ +Em +nZ +km +RZ +RZ +Ii +tW +dN +WF +eQ +LS +MZ +nZ +Em +nZ +PP +RZ +aY +QU +QU +fX +nN +Nx +XQ +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +VE +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +oQ +oQ +oQ +zW +dR +dR +dR +zW +oQ +Gl +nw +HB +oH +Gl +qo +es +LT +zB +LT +LT +LT +es +zw +"} +(77,1,1) = {" +Qv +MU +CO +CO +ke +CO +CO +EW +EW +CO +Qc +qS +PQ +RA +RA +RA +od +RA +od +RA +RA +Wn +KV +Wx +vZ +vZ +qS +Id +Id +Id +un +rc +kK +lm +Ei +cV +cV +mX +rc +UM +km +nZ +nZ +Ac +Ac +Ac +Ac +nZ +nZ +nZ +nZ +nZ +nZ +Em +nZ +km +RZ +AT +to +YL +gO +WF +eQ +LS +iA +nZ +Em +nZ +Gv +RZ +SY +Az +Wr +GN +zh +Nx +XQ +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +VE +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +nY +oQ +qo +oQ +oQ +gY +oQ +TJ +TJ +TJ +bt +bt +bt +TJ +TJ +oQ +oQ +zW +dR +sL +dR +Zn +oQ +Gl +nw +HB +oH +Gl +oQ +es +LT +es +wr +uV +JH +es +zw +"} +(78,1,1) = {" +Qv +MU +MU +MU +MU +MU +CO +Af +EW +CO +Qc +vZ +Vc +KV +KV +KV +KV +KV +KV +KV +KV +Wx +qG +vt +vt +Zx +Zx +Zx +Zx +is +TK +rc +vk +eN +eN +eN +eN +WG +dK +UM +km +nZ +Hk +Ac +Sh +eI +Xu +Hk +Hk +Hk +Hk +Hk +Hk +ib +nZ +dx +RZ +AT +to +YL +Kk +WF +eQ +Ul +Ac +LZ +Ar +LZ +Ac +RZ +To +Az +Wh +GN +zh +Nx +XQ +XQ +yu +XQ +Pf +XQ +yu +XQ +Pf +XQ +yu +XQ +VE +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +qo +oQ +oQ +oQ +qo +oQ +oQ +oQ +TJ +qL +qL +qL +qL +qL +pf +TJ +oQ +oQ +zW +IA +Zz +Zz +aB +qo +Gl +nw +HB +oH +Gl +oQ +zB +kD +es +es +es +es +es +zw +"} +(79,1,1) = {" +Qv +MU +MU +MU +MU +MU +ke +EW +EW +CO +Bv +vt +Li +vt +vt +vt +vt +Zx +vt +Li +vt +vt +qs +Hg +Hg +IQ +bj +Hg +Hg +UW +TK +rc +Hx +wK +uW +Zq +DK +Ch +dK +UM +km +nZ +nZ +Ac +Ac +Ac +Ac +nZ +nZ +nZ +nZ +nZ +nZ +Em +nZ +km +RZ +hw +to +dB +tN +WF +eQ +eQ +Ac +nf +tV +nf +Ac +RZ +BL +Az +uS +GN +zh +Nx +XQ +XQ +XQ +XQ +Pf +XQ +XQ +XQ +Pf +XQ +XQ +XQ +VE +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +bu +TJ +Dc +qL +bd +qL +bd +pf +TJ +gY +oQ +zW +dR +Or +dR +Zn +oQ +Gl +nw +HB +oH +Gl +oQ +es +LT +es +jN +zE +ov +es +zw +"} +(80,1,1) = {" +Qv +MU +MU +MU +MU +MU +ke +EW +jK +IH +IH +IH +IH +IH +IH +IH +Pj +bo +Pj +IH +IH +Hg +SV +Hg +PM +IQ +IX +hT +Hg +UW +dO +rc +rc +rc +rc +Qe +eN +cy +dK +UM +km +km +km +Yl +Yl +jW +Yl +km +km +km +km +km +nZ +Em +nZ +km +RZ +pZ +Tl +pw +pw +PD +fz +LS +UV +nZ +Em +nZ +Yc +RZ +Xg +jo +jo +aj +nN +CM +Ji +lc +lc +lc +aF +Ji +lc +lc +Al +lc +lc +Ji +aF +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +TJ +TJ +TJ +TJ +TJ +TJ +qL +cE +cE +cE +qL +xd +TJ +qo +qo +zW +dR +Wu +rz +zW +hE +Gl +nw +HB +oH +Gl +oQ +es +LT +zB +LT +LT +LT +es +zw +"} +(81,1,1) = {" +Qv +MU +MU +MU +MU +MU +ke +EW +Zo +IH +kz +UI +ci +lL +ci +ty +ty +ty +UI +UI +IH +as +QF +AP +Op +QF +IQ +ot +SV +UW +TK +RQ +MU +MU +rc +Qe +eN +tl +rc +gU +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +km +nZ +Em +nZ +km +RZ +pP +Xw +QT +Gt +aU +Qh +LS +dz +nZ +Em +nZ +qm +RZ +nN +nN +nN +eL +nN +nN +nN +nN +nN +nN +nN +nN +Ia +aX +nN +nN +nN +nN +nN +nN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +TJ +HI +HI +HI +HI +TJ +Ma +TJ +TJ +TJ +tn +xd +TJ +qo +jF +zW +zW +zW +zW +zW +oQ +Gl +nw +HB +oH +Gl +qo +es +es +es +Hn +ly +JH +es +zw +"} +(82,1,1) = {" +Qv +MU +MU +MU +MU +MU +ke +EW +EW +jb +UI +ra +Tg +NG +ra +kX +qB +qB +qB +UI +IH +vO +LD +tZ +tZ +iz +cz +br +Hg +UW +TK +RQ +MU +MU +rc +Ah +QP +bN +rc +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +Ac +km +nZ +Em +nZ +km +RZ +Kk +Kk +pJ +to +mp +dN +LS +dj +Zt +aL +Zt +dj +Zi +hx +XN +Lr +sH +XN +XN +XN +XN +XN +XN +XN +YM +sH +sH +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +qo +oQ +qo +oQ +Pb +qL +qL +qL +qL +TJ +qL +HI +HI +HI +qL +Up +bt +oQ +oQ +oQ +oQ +oQ +oQ +gY +oQ +Gl +nw +HB +oH +Gl +qo +qo +oQ +es +es +Je +es +es +zw +"} +(83,1,1) = {" +Qv +MU +MU +MU +MU +MU +CO +EW +EW +IH +Qu +ra +ra +ra +ra +kX +Xc +HL +wI +UI +Pj +vO +tZ +tZ +cn +tZ +cz +IQ +SV +UW +TK +RQ +RQ +FZ +FZ +FZ +FZ +FZ +FZ +Ac +Ac +Ac +Ac +xj +Ac +Ac +Ac +Ac +Ac +xj +Ac +km +nZ +Em +nZ +km +RZ +RZ +RZ +RZ +RZ +RZ +RZ +Zi +dj +Zt +aL +Zt +dj +Zi +Zi +YM +sH +sH +YM +XN +XN +YM +YM +XN +XN +XN +ls +Ab +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +qL +qL +nc +MJ +bd +TJ +Dc +qL +bd +qL +bd +Up +bt +oQ +oQ +oQ +oQ +oQ +oQ +oQ +oQ +Gl +nw +HB +oH +Gl +oQ +gY +oQ +oQ +oQ +qo +oQ +oQ +zw +"} +(84,1,1) = {" +Qv +MU +MU +MU +MU +MU +CO +Af +EW +IH +Vy +HF +HF +HF +ph +ty +DH +gX +DH +UI +IH +vO +cn +tZ +PS +tZ +cz +WM +Hg +UW +TK +RQ +RQ +FZ +SI +zs +zs +wR +FZ +RZ +RZ +RZ +RZ +RZ +yb +yb +wJ +yb +RZ +RZ +RZ +km +nZ +Em +nZ +km +km +km +km +an +km +km +km +dj +dj +Zt +aL +fp +di +di +di +YM +Rc +sH +YM +Im +Im +Zl +YM +XN +XN +XN +sH +sH +XN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +gY +oQ +TJ +qL +qL +qL +qL +TJ +qL +HI +HI +HI +qL +tR +bt +qo +JB +pu +pu +pu +pu +pu +pu +cA +nw +HB +oH +Gl +oQ +oQ +oQ +qo +oQ +oQ +Ef +gY +zw +"} +(85,1,1) = {" +Qv +MU +MU +MU +MU +MU +ke +EW +EW +IH +IH +IH +IH +IH +IH +aa +Dx +UI +UI +UI +IH +vO +Oc +tZ +tZ +Ls +cz +br +SV +UW +Vc +Id +un +Tp +ET +mC +mC +ld +FZ +MU +MU +MU +MU +MU +Re +zD +Gi +yb +MU +MU +RZ +km +nZ +Em +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +Zt +Zt +Zt +aL +Zt +dj +Zi +di +YM +sH +Hu +YM +BJ +Mp +sa +AS +hC +sH +sH +sH +sH +XN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +qo +oQ +PY +oQ +oQ +oQ +TJ +qL +DG +vq +bd +TJ +Ma +TJ +TJ +TJ +tn +tR +TJ +qo +Gl +qC +Ak +Ak +Ak +Pm +sK +Gl +nw +HB +oH +Gl +oQ +wD +wD +oQ +oQ +oQ +oQ +oQ +zw +"} +(86,1,1) = {" +Qv +MU +MU +MU +MU +MU +ke +EW +EW +Fx +BU +IH +ds +mn +IH +IH +IH +Mc +IH +IH +IH +IQ +xB +ck +ck +xB +IQ +PM +Hg +Bv +is +vZ +TK +FZ +ET +dh +VJ +Ku +FZ +yb +Re +Re +Re +Re +yb +Gi +Gi +Re +MU +MU +RZ +km +nZ +ad +XA +XA +XA +XA +XA +XA +XA +XA +XA +Hl +Hl +Hl +lO +Zt +vL +Zi +ew +Cn +hO +hO +YM +At +Im +wZ +YM +sH +sH +sH +uZ +uL +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +qo +oQ +TJ +QS +qL +qL +qL +TJ +qL +Qt +Qt +Qt +qL +tR +TJ +oQ +Gl +nw +HB +HB +HB +HB +oH +Gl +nw +HB +oH +Gl +wD +wD +wD +wD +oQ +oQ +qo +oQ +zw +"} +(87,1,1) = {" +Qv +MU +MU +MU +MU +MU +CO +IS +EW +EW +EW +jb +MB +MB +eT +ra +Mv +ra +ra +bp +IH +Hg +Hg +Hg +VR +VR +Hg +Hg +Hg +RQ +fe +Bk +TK +Tp +ET +iB +QQ +ld +FZ +Cu +Ou +Gi +Gi +Gi +Gi +Gi +Ou +Re +MU +MU +RZ +km +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +Zt +Zt +Zt +aL +Zt +dj +Zi +dj +YM +sH +hO +YM +YM +Gp +YM +YM +sH +sH +YM +YM +YM +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +oQ +oQ +oQ +oQ +oQ +oQ +TJ +qL +cE +cE +bd +TJ +Dc +qL +bd +qL +bd +tR +TJ +Ef +Gl +nw +HB +HB +HB +HB +oH +DF +nw +HB +oH +Gl +wD +wD +wD +wD +qo +oQ +oQ +nY +zw +"} +(88,1,1) = {" +Qv +MU +MU +MU +MU +MU +CO +CO +ke +ke +ke +IH +uQ +MB +IH +Kn +ra +ra +ra +ra +IH +MU +MU +MU +MU +MU +MU +MU +MU +RQ +RQ +UW +TK +FZ +kk +dG +dG +WZ +FZ +cb +cb +ft +Br +AW +OS +uX +yb +Re +MU +MU +RZ +km +km +km +km +km +km +km +km +vX +km +km +km +dj +dj +Zt +aL +Zt +dj +dj +dj +YM +ls +hO +sH +sH +sH +sH +DO +sH +ls +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +jq +oQ +oQ +qo +oQ +oQ +oQ +TJ +qL +qL +qL +qL +TJ +TJ +TJ +QS +qL +qL +ZC +TJ +oQ +Gl +nw +HB +HB +HB +HB +VV +Ak +UY +HB +oH +Gl +oQ +wD +wD +qo +oQ +oQ +oQ +oQ +zw +"} +(89,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +IH +KE +XI +IH +ra +qB +ra +ra +ra +YU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +UW +dO +FZ +FZ +QQ +EJ +FZ +FZ +uf +FZ +FZ +FZ +FZ +FZ +FZ +FZ +FZ +MU +MU +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +RZ +Zi +dj +Zt +aL +Zt +dj +Zi +Zi +YM +oe +hO +hO +hO +hO +hO +sH +sH +uU +XN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Jq +jz +jq +jq +jq +qo +wD +oQ +oQ +oQ +qo +TJ +qL +bd +qL +bd +Jz +bd +TJ +UR +qL +bd +qL +Wi +qo +Gl +nw +HB +HB +HB +HB +HB +HB +HB +HB +oH +Gl +oQ +oQ +qo +oQ +gY +oQ +qo +qo +zw +"} +(90,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +IH +IH +IH +IH +Ee +ie +CR +rZ +JI +YU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +UW +Vc +Id +Id +Id +Id +Id +UJ +Nv +FZ +LH +iW +WP +lq +qW +xH +FZ +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Zi +dj +Zt +aL +Zt +dj +YM +XN +YM +YM +YM +Gp +YM +YM +bh +sH +YM +XN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jC +jq +jq +jq +jq +jq +jq +oQ +wD +wD +oQ +jF +oQ +TJ +qL +cH +jU +bL +ce +ZC +TJ +UR +qL +qL +ce +ce +oQ +Gl +nw +HB +HB +HB +HB +yU +pc +JM +HB +oH +Gl +oQ +oQ +Ef +oQ +oQ +oQ +oQ +oQ +zw +"} +(91,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +IH +IH +YU +YU +IH +IH +YU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +Bv +Zx +Zx +Ks +Zx +Zx +is +vZ +TK +FZ +Pv +Cf +QQ +QQ +ne +wL +FZ +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Zi +dj +Zt +aL +Zt +dj +YM +XN +YM +ix +Im +Im +Im +YM +rI +sH +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jq +jq +jq +jq +jz +BD +wD +wD +wD +Ef +oQ +oQ +TJ +qL +jU +Gc +jU +ce +XX +hG +XX +ce +XX +ia +TJ +oQ +Gl +nw +HB +HB +HB +HB +oH +qp +nw +HB +oH +Gl +qo +oQ +oQ +oQ +oQ +ns +gK +ns +zw +"} +(92,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +Dp +RQ +RQ +Dp +Dp +Dp +fe +Bk +TK +FZ +gS +QQ +QQ +QQ +QQ +Fb +FZ +MU +MU +MU +MU +MU +FZ +FZ +FZ +Ie +Ie +FZ +FZ +MU +MU +MU +Zi +FC +Zt +aL +Zt +Kw +YM +XN +YM +FR +Im +Mp +qn +YM +sH +sH +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jz +jq +jq +jq +BD +BD +BD +wD +wD +wD +oQ +oQ +oQ +TJ +QS +Iw +Nt +cH +qL +qL +qL +qL +qL +qL +qL +TJ +oQ +Gl +nw +HB +HB +HB +HB +oH +Gl +nw +HB +oH +Gl +qo +oQ +qo +ns +gK +ns +Ep +ns +zw +"} +(93,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +Dp +UW +TK +FZ +SA +QQ +mC +mC +QQ +ld +FZ +FZ +Ie +Ie +FZ +FZ +FZ +SL +NZ +gu +md +oy +FZ +MU +MU +MU +Zi +yT +Zt +aL +Zt +Hq +YM +XN +YM +Im +Im +Qp +WE +YM +sH +Hu +XN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +qd +jq +jq +BD +BD +BD +wD +wD +wD +qo +oQ +oQ +TJ +qL +Gc +jU +jU +qL +Ma +TJ +tn +PE +QW +qL +TJ +oQ +Gl +nw +IT +HB +HB +HB +kf +Gl +nw +HB +oH +Gl +gY +oQ +ns +ns +VD +RP +kZ +ns +zw +"} +(94,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +UW +TK +mk +SA +QQ +dh +Hv +QQ +jH +dL +qW +qW +NZ +pB +IK +FZ +rP +QQ +QQ +QQ +ID +FZ +Re +Re +Re +Zi +Ad +Yo +jl +Yo +Ad +YM +XN +YM +Gp +YM +YM +YM +YM +Rc +sH +XN +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jq +jq +KK +jq +jq +KK +BD +BD +wD +oQ +oQ +oQ +oQ +oQ +TJ +qL +qL +qL +qL +qL +qL +TJ +qL +qL +qL +qL +TJ +qo +Gl +Ye +pc +pc +pc +pc +et +Gl +nw +HB +oH +Gl +oQ +oQ +gK +VD +wp +iY +eO +ns +zw +"} +(95,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +Bv +kQ +QQ +ET +QQ +Cf +Cf +QQ +mr +dG +bY +QQ +QQ +QQ +jH +dL +ES +QQ +QQ +QQ +ao +FZ +pz +uX +Re +Zi +Ad +sm +TH +sm +Ad +YM +XN +XN +sH +du +sH +sH +sH +sH +Vk +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jC +MU +MU +MU +MU +jq +jq +jq +us +jq +jq +jq +BD +wD +oQ +oQ +gY +oQ +qo +TJ +TJ +bt +TJ +bt +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +oQ +hH +pu +pu +pu +pu +pu +pu +cA +nw +HB +oH +Gl +qo +ns +ns +tG +iY +iY +so +ns +zw +"} +(96,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Dp +RQ +RQ +FZ +GE +Vf +yX +dG +dG +WZ +FZ +Hb +Vf +bY +mr +dG +dG +bY +QQ +QQ +QQ +ld +oX +Gi +Gi +Re +Zi +ug +Zt +aL +Zt +qr +YM +YM +YM +Gp +YM +mu +sH +sH +ls +Jf +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jq +qd +jq +jq +jq +jq +MU +MU +jq +jz +jq +jq +jq +jq +jz +jq +oQ +oQ +oQ +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +oQ +qo +oQ +oQ +oQ +oQ +gY +oQ +qo +oQ +qo +qo +oQ +oQ +gY +oQ +Gl +nw +HB +oH +Gl +oQ +gK +VD +qJ +eC +PJ +eO +ns +zw +"} +(97,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +FZ +FZ +FZ +FZ +Vh +Vh +FZ +FZ +FZ +FZ +ET +bB +FZ +FZ +hA +QQ +QQ +QQ +me +FZ +gi +FZ +FZ +FZ +WT +Zt +aL +Zt +MT +YM +Im +jx +Im +YM +XN +XN +YM +YM +YM +YM +MU +MU +MU +MU +MU +MU +MU +Jq +jq +jq +jq +jq +jq +jq +jq +jq +jq +KK +jq +dD +jq +jq +jq +Fh +aq +aq +aq +aq +aq +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +pu +xM +nw +HB +oH +Gl +qo +gK +IC +kh +ns +nH +eO +ns +zw +"} +(98,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +FZ +by +ve +Nq +Jl +Ow +qW +ES +jH +sQ +FZ +oj +QQ +mr +FU +Lj +BB +ej +qW +Mi +BB +dj +Zt +aL +Zt +dj +kd +Im +eY +Im +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jz +jq +jq +jq +jq +jq +jz +jq +jq +jq +jq +jq +jq +jq +jq +Bs +xu +zr +zr +zr +zr +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +Ak +UY +HB +oH +Gl +oQ +lN +el +ns +ns +uG +eO +ns +zw +"} +(99,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Ie +ET +Cf +QQ +QQ +QQ +QQ +QQ +mr +tz +Vh +kk +dG +Mk +FZ +FZ +FZ +rP +ne +wL +BB +dj +Zt +aL +Zt +dj +kd +Im +Im +Im +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jq +yo +yo +yo +yo +yo +yo +yo +yo +jq +jq +jz +jq +qd +jq +jq +Bs +re +AM +AM +AM +AM +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +VU +pE +iU +gK +IC +kZ +ns +Gb +eO +ns +wb +"} +(100,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Ie +kk +dG +Vf +dG +dG +Vf +dG +tz +FZ +FZ +xU +xU +xU +FZ +MU +FZ +AJ +QQ +ld +BB +dj +Zt +aL +Zt +dj +kd +Im +Im +Im +YM +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +KK +jq +yo +qw +qw +fG +zg +lT +yN +yo +yo +jq +jq +jq +jq +jz +jq +Bs +re +AM +Kt +uw +uw +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +mb +qf +VU +pE +iU +gK +yS +We +DR +zQ +eO +ns +wb +"} +(101,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +FZ +EP +xq +FZ +EP +xq +FZ +EP +xq +FZ +Ie +rx +WK +fg +FZ +MU +FZ +FD +ai +Sd +FZ +dj +Zt +aL +Zt +dj +YM +XN +XN +YM +YM +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jz +jq +qd +jq +yo +yL +fG +fG +ZO +mj +ZO +mj +yo +yo +jq +Fh +aq +aq +aq +qg +re +AM +Tw +Fh +aq +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +hS +Fc +qf +VU +pE +iU +ns +ns +tG +iY +iY +so +ns +wb +"} +(102,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +FZ +CQ +dQ +FZ +CQ +dQ +FZ +CQ +dQ +FZ +Ie +Ie +FZ +FZ +FZ +MU +FZ +FZ +FZ +FZ +FZ +dj +Zt +aL +Zt +dj +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jq +jq +jq +jz +yo +fG +fG +fG +yN +lT +yN +lT +tD +Jb +jq +Bs +xu +zr +mw +bM +re +AM +Tw +Bs +jq +iU +iU +IO +iU +iU +iU +iU +Hf +iU +iU +iU +iU +iU +iU +iU +iU +iU +iU +iU +iU +yR +iU +yR +yR +iU +IO +iU +pE +Fc +qf +VU +pE +yR +iU +gK +yS +EB +iY +eO +ns +wb +"} +(103,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +FZ +FZ +FZ +FZ +FZ +FZ +FZ +FZ +FZ +FZ +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Zi +dj +Zt +aL +Zt +dj +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +jz +jq +us +jq +jq +jz +yo +fG +tD +YP +Nz +Nz +Nz +Nz +tD +qy +jq +Bs +re +AM +Ym +zr +WX +AM +Tw +Bs +jq +Yp +Yp +Yp +Yp +Yp +iU +iU +yR +iU +xX +xX +xX +qI +xX +xX +xX +iU +yR +IO +iU +iU +iU +yR +iU +iU +iU +iU +pE +Fc +qf +VU +pE +iU +yR +ns +ns +yS +YH +kh +ns +wb +"} +(104,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +dj +Zt +aL +Zt +dj +jd +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +jq +jz +jq +jq +jq +jq +jz +yo +fG +tD +TL +Nz +Nz +Nz +Nz +tD +tD +jq +Bs +re +AM +AM +AM +AM +AM +Tw +Bs +jz +Yp +WQ +Dk +Lf +Yp +yR +iU +iU +iU +xX +EC +ti +vp +rR +MF +xX +iU +iU +FM +FM +dH +FM +dH +FM +FM +Yf +iU +pE +Fc +qf +VU +pE +iU +JK +iU +ns +gK +ns +Ep +ns +wb +"} +(105,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +dj +Zt +aL +Zt +dj +jd +jd +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +KK +jq +jq +jq +jq +jq +jq +yo +fG +fG +fG +ZO +mj +ZO +mj +tD +Jb +jq +Bs +re +AM +US +uw +wo +AM +Tw +Bs +jq +eu +LG +LG +LG +eu +iU +iU +iU +iU +xX +eZ +JX +Qr +Uv +Vn +xX +sP +iU +FM +WI +ym +YI +Fl +YI +FM +yR +yR +pE +Fc +qf +VU +pE +iU +iU +iU +yR +iU +ns +gK +ns +wb +"} +(106,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +dj +Zt +aL +Zt +dj +jd +jd +MU +MU +MU +MU +MU +MU +MU +jC +jq +jq +jq +jq +jq +jz +jq +jq +jz +yo +Hs +bT +bT +yN +lT +yN +lT +yo +yo +jq +Bs +vn +uw +bi +VX +re +AM +Tw +Bs +jq +LG +LG +LG +LG +LG +iU +UX +iU +iU +xX +ow +hu +Nj +SO +Ve +xX +iU +iU +FM +TT +OC +ym +OC +ym +uD +iU +iU +pE +Fc +qf +VU +pE +iU +sP +iU +iU +iU +yR +yR +rw +wb +"} +(107,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +ZG +jd +dj +Zt +aL +Zt +dj +jd +mN +jd +MU +MU +MU +MU +MU +MU +jq +jz +jq +wj +wj +CK +CK +wj +wj +jq +yo +mm +fG +bT +VS +mj +ZO +yo +yo +jq +jz +Lo +aq +aq +aq +qg +re +AM +Tw +Bs +jz +Yp +Fn +Ki +Lf +Yp +iU +iU +iU +yR +hV +Vu +jO +xX +xX +xX +xX +iU +iU +FM +WI +Oh +Sg +Oh +Sg +Oh +iU +iU +pE +Fc +qf +VU +pE +iU +yR +Be +iU +iU +iU +rw +rw +wb +"} +(108,1,1) = {" +Qv +MU +Ew +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +jd +dj +Zt +aL +Zt +dj +jd +jd +jd +MU +MU +MU +MU +MU +MU +jq +jq +jq +wj +lf +SS +OZ +PT +wj +jq +yo +yo +fG +ge +yo +yo +yo +yo +jq +jq +jq +jz +jq +jq +jq +Bs +re +AM +Tw +Bs +jq +Yp +Yp +Yp +Yp +Yp +iU +iU +iU +iU +hV +Lu +JX +xX +YT +mF +xX +iU +iU +FM +TT +WH +VF +WI +TT +FM +iU +iU +pE +Fc +qf +VU +pE +iU +iU +iU +IO +iU +iU +rw +rw +wb +"} +(109,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +Tu +dj +Zt +aL +Zt +dj +jd +jd +jd +MU +MU +MU +MU +MU +MU +jz +jq +jq +wj +qi +dC +xl +FL +wj +qd +jq +jq +jq +jq +jq +jz +jq +jq +KK +jq +jq +jq +jq +qd +jz +Bs +re +AM +Tw +Bs +qd +iU +iU +iU +iU +iU +iU +IO +iU +iU +xX +yw +Cw +yt +Cw +Jv +xX +yR +iU +FM +FM +FM +FM +FM +FM +FM +iU +sP +pE +Fc +qf +VU +pE +iU +iU +iU +yR +iU +rw +rw +rw +wb +"} +(110,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +jd +jd +dj +Zt +aL +Zt +dj +Tu +jd +jd +MU +MU +MU +MU +MU +jq +qd +jq +Jq +wj +TI +bn +Dq +ZA +wj +jq +Fh +aq +aq +aq +Bj +jq +QA +QA +QA +QA +QA +QA +QA +QA +jq +Bs +re +AM +Tw +Bs +jq +iU +iU +iU +yR +iU +yR +iU +iU +iU +xX +xX +xX +xX +yh +QI +xX +iU +iU +yR +iU +iU +iU +iU +iU +IO +iU +yR +pE +Fc +qf +VU +pE +yR +IO +iU +yR +rw +rw +rw +rw +wb +"} +(111,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +mN +jd +jd +dj +Zt +aL +Zt +dj +jd +jd +ZG +MU +MU +MU +MU +MU +jz +jq +wj +wj +wj +wj +wj +wj +bS +wj +jq +Bs +Yt +zr +mw +Bs +jz +QA +ev +ff +QA +iT +MW +lx +QA +Jq +Bs +re +AM +Tw +Bs +jq +xX +xX +xX +xX +xX +xX +yR +iU +iU +iU +Be +xX +QR +pj +HD +xX +iU +IO +iU +iU +iU +yR +yR +yR +iU +iU +iU +pE +Fc +qf +VU +pE +iU +iU +yR +iU +rw +rw +rw +rw +wb +"} +(112,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jC +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +jd +jd +dj +Zt +aL +Zt +dj +jd +jd +MU +MU +MU +MU +MU +MU +jz +jq +wj +DX +jJ +sr +pg +WN +Nl +wj +jq +Bs +re +AM +Tw +Bs +jq +QA +jE +jE +Dw +jE +Fa +CF +QA +jq +Bs +oD +AM +Tw +Bs +jq +xX +Xl +Xl +Cw +bG +xX +iU +sP +iU +iU +iU +xX +xX +hV +xX +xX +iU +yR +iU +XY +XY +XY +XY +XY +XY +XY +yR +pE +Fc +qf +VU +pE +rw +rw +iU +iU +rw +rw +rw +rw +wb +"} +(113,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +KK +jq +jq +jq +jq +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +jd +dj +Zt +aL +Zt +dj +jd +MU +MU +MU +MU +MU +MU +jq +jq +jq +wj +qi +GM +xl +xl +xl +FL +pH +jq +Bs +re +AM +Tw +Bs +jq +El +jE +jE +QA +jE +Fa +JQ +QA +jq +Bs +re +AM +Tw +Bs +jq +iJ +Cw +Cw +Cw +DB +xX +iU +iU +iU +iU +iU +yR +iU +iU +iU +iU +Yf +iU +iU +XY +py +ER +BQ +hb +ko +XY +yR +pE +Fc +qf +VU +pE +rw +yR +iU +yR +iU +rw +rw +rw +wb +"} +(114,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +dD +jz +jq +jq +jq +jq +qd +jz +jq +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jd +dj +Zt +aL +Zt +dj +MU +MU +MU +MU +MU +MU +MU +jq +sV +jq +wj +YX +EK +sM +Dq +bn +ZA +wj +jq +Bs +re +AM +Tw +Bs +jq +El +mx +MV +QA +jE +jE +jE +wB +jq +Bs +re +AM +Tw +Bs +jz +iJ +Sk +pR +Cw +jf +xX +xX +xX +xX +iU +iU +iU +iU +iU +iU +iU +iU +iU +yR +XY +tu +Sq +Ln +tu +PL +XY +yR +pE +Fc +qf +VU +pE +iU +iU +iU +iU +iU +rw +rw +rw +wb +"} +(115,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +qd +jq +jq +jq +jq +jq +jq +jz +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +dj +Zt +aL +Zt +dj +MU +MU +MU +MU +MU +MU +MU +jz +jq +jq +wj +wj +CK +CK +wj +wj +wj +wj +jq +Bs +re +AM +Tw +Bs +KK +QA +QA +QA +QA +pD +jE +jE +jE +jz +Bs +re +AM +Tw +Bs +jq +xX +xX +xX +qI +xX +xX +cI +XC +xX +yR +yR +iU +XY +XY +XY +XY +XY +XY +XY +XY +DE +DE +DE +DE +PL +Sl +iU +pE +Fc +qf +VU +pE +iU +iU +iU +iU +yR +rw +rw +rw +wb +"} +(116,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Jq +jq +jq +jz +jq +jq +jq +jq +sV +jq +jq +qd +jq +MU +MU +MU +MU +MU +MU +MU +MU +MU +dj +Zt +aL +Zt +dj +MU +MU +MU +MU +MU +MU +MU +jq +jz +jq +KK +jq +jq +jq +jq +jq +jq +qd +jz +Bs +re +AM +Tw +Bs +jz +QA +bc +jE +jE +NU +Mr +jE +QA +jq +Bs +re +AM +Tw +Bs +jq +xX +Cw +Cw +Cw +Cw +Ax +Cw +nF +xX +yR +JK +iU +XY +Hz +Rd +Hz +zO +Hz +Rd +Hz +zO +Hz +Rd +Hz +zO +zO +IO +pE +Fc +qf +VU +pE +yR +iU +iU +UX +iU +xG +rw +rw +wb +"} +(117,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +jq +jq +jq +jq +jz +jq +jq +jq +jq +jq +jq +jq +MU +MU +MU +Gy +Gy +Gy +Gy +Gy +sp +Kg +QV +Kg +sh +Gy +Gy +Gy +Gy +Gy +MU +MU +jq +jq +qd +jq +jq +jq +jq +dD +jq +jq +jq +jq +Bs +re +AM +Tw +Bs +jq +QA +QA +uc +jE +Fe +Mr +jE +QA +dD +Bs +re +AM +Tw +Bs +jq +xX +Cv +NV +cX +Ax +Ax +Ax +Xl +xX +iU +iU +iU +XY +Nc +uq +rG +zO +RL +RX +rG +zO +RL +qH +rG +zO +XY +iU +pE +Fc +qf +VU +pE +rw +yR +yR +iU +iU +yR +rw +rw +wb +"} +(118,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jq +jq +BD +jq +KK +qd +jq +jq +dJ +jq +jz +jq +MU +MU +Gy +UE +GC +GC +qj +id +Kg +QV +Kg +id +SF +GC +GC +UE +Gy +MU +MU +AO +AO +AO +AO +AO +AO +AO +AO +AO +AO +Xx +jq +Bs +re +AM +Tw +Bs +jq +jq +QA +QA +jE +jE +jE +jE +QA +jq +Bs +re +AM +Tw +Bs +jq +xX +Cw +Cw +Cw +Cw +Ax +Cw +Xl +xX +iU +IO +iU +XY +Hz +VL +Hz +zO +Hz +nz +Hz +zO +Hz +VL +Hz +zO +XY +iU +pE +Fc +qf +VU +pE +rw +rw +yR +iU +iU +iU +iU +rw +wb +"} +(119,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +qd +jq +jz +BD +BD +jq +jq +jq +jq +jq +jq +jq +jq +jq +MU +MU +Gy +GC +Vq +Vq +Iq +yf +pv +QV +Kg +id +SF +GC +GC +GC +Gy +MU +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +uH +jq +Bs +re +AM +Tw +Bs +jq +jz +jz +QA +QA +QA +QA +QA +QA +jz +Bs +re +AM +Tw +Bs +jq +xX +xX +xX +Cw +zV +xX +xX +xX +xX +iU +iU +yR +XY +XY +XY +pp +pp +XY +XY +XY +XY +pp +pp +XY +XY +XY +yR +pE +Fc +qf +VU +pE +rw +rw +sP +iU +IO +iU +iU +rw +wb +"} +(120,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +BD +BD +BD +Jq +jq +jz +jq +jq +jq +jq +jz +MU +MU +Gy +pS +Vq +GC +Gw +id +Kg +aM +Kg +id +eh +GC +GC +pS +Gy +EA +EA +Gy +EA +EA +EA +Gy +EA +Gy +EA +EA +EA +uH +jz +Bs +re +AM +Tw +Bs +sV +jq +jz +jq +qd +jz +jq +jq +jq +jq +Bs +re +AM +Tw +Bs +jq +yR +iU +IO +iU +yR +yR +iU +iU +iU +iU +iU +iU +iU +yR +iU +sP +iU +iU +iU +iU +iU +iU +yR +iU +iU +sP +iU +pE +Fc +qf +VU +pE +rw +rw +rw +iU +yR +iU +yR +iU +wb +"} +(121,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +jq +jq +MU +MU +MU +MU +MU +MU +jq +jq +jz +jq +jq +BD +BD +BD +jq +jq +jq +jz +jz +jq +jq +KK +MU +Gy +cY +Vq +GC +Gy +PG +pK +pK +pK +PG +Gy +GC +GC +cY +Gy +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +Gy +EA +uH +jz +Bs +oD +AM +Tw +Lo +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +HM +re +AM +Tw +Lo +aq +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +uK +Fc +qf +VU +il +pA +pA +pA +pA +pA +pA +pA +pA +wb +"} +(122,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jq +jz +jq +jq +jq +dD +MU +MU +MU +MU +MU +KK +jq +jq +jq +qd +jq +jq +jq +jq +jq +dD +jq +Gy +Gy +Gy +Gy +Gy +Gy +Gy +GC +Vq +GC +Gy +PG +vD +OQ +EA +PG +Gy +GC +GC +GC +Gy +Gy +Gy +Gy +GC +Uy +Gy +Gy +Gy +EA +EA +EA +EA +uH +qd +Bs +re +AM +Ym +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +WX +AM +Ym +zr +zr +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +XU +AC +qf +Xk +XU +XU +XU +XU +XU +XU +wy +XU +XU +wb +"} +(123,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jq +jq +qd +jq +jq +MU +MU +MU +MU +qd +jq +jq +dJ +jq +jq +sV +jq +jq +jq +jq +jz +Gy +Pz +YN +Ng +Ng +sJ +Zk +GC +Vq +GC +ox +Te +EA +lF +EA +Te +NX +GC +GC +GC +Zk +GC +GC +GC +GC +GC +Zk +GC +Gy +EA +EA +Gy +EA +uH +jq +Bs +re +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +AM +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +qf +KR +qf +qf +LX +qf +qf +qf +qf +qf +qf +wb +"} +(124,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Jq +jq +jq +jq +jq +jq +jq +jq +KK +jq +MU +MU +jq +jq +jz +jq +jq +jq +jz +jq +jq +us +jq +qd +jz +Gy +GC +GC +GC +GC +GC +GC +GC +Vq +GC +qj +PG +EA +Gs +EA +PG +SF +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +Gy +EA +EA +EA +EA +uH +jq +Bs +re +AM +Kt +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +uw +bH +bH +bH +mb +qf +vj +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +bH +mb +qf +vj +bH +bH +bH +bH +bH +bH +bH +bH +bH +wb +"} +(125,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +us +jq +jq +jq +jz +jq +jq +jq +jq +jq +jq +jq +jq +jq +jz +jq +jq +jq +jq +jq +jq +jq +jq +Gy +GC +GC +Gy +Gy +Gy +Gy +GC +Vq +GC +ox +Te +EA +OQ +EA +Te +NX +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +Gy +EA +EA +Gy +EA +uH +jz +Bs +re +AM +Tw +Fh +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +pA +pA +hS +Fc +qf +CY +EV +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +pA +hS +Fc +qf +VU +EV +pA +pA +pA +pA +pA +pA +pA +pA +wb +"} +(126,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +jq +jq +jq +jq +jq +jz +jq +jq +dD +jq +jq +jq +jq +jq +BD +jq +jq +jq +jz +AI +AO +Gy +GC +GC +Gy +YN +yE +sJ +GC +Vq +kH +Gy +PG +EA +lF +EA +PG +Gy +GC +GC +GC +Gy +Gy +qO +rE +Vm +GC +GC +GC +wz +EA +EA +EA +EA +uH +jz +Bs +re +AM +Tw +Bs +jq +KK +jq +jq +jq +qd +jq +jq +jq +jq +jz +jq +jq +qd +jq +Jx +iU +iU +pE +Fc +qf +VU +pE +iU +iU +iU +iU +IO +iU +yR +iU +yR +iU +iU +iU +iU +iU +yR +iU +iU +iU +iU +Hf +pE +Fc +qf +VU +pE +iU +iU +yR +yR +iU +iU +ub +iU +wb +"} +(127,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +jq +jq +jq +jq +sV +jq +jq +jq +jq +jz +jq +jq +jq +jq +qd +BD +BD +jz +jq +jq +jq +uE +lH +vI +GC +GC +GC +GC +GC +GC +GC +Vq +pS +Gy +PG +EA +EA +EA +PG +Gy +pS +GC +pS +Gy +Gy +GC +fj +Cm +GC +GC +GC +vI +EA +EA +EA +EA +uH +jq +Bs +re +AM +Bc +Bs +qd +wj +wj +wj +wj +Ox +CK +wj +wj +wj +jq +jq +MQ +MQ +lY +MQ +MQ +JK +pE +Fc +qf +VU +pE +yR +xX +xX +xX +xX +xX +xX +Og +xX +xX +iU +IO +xX +xX +xX +xX +iU +UX +yR +yR +pE +Fc +qf +VU +pE +yR +JK +yR +iU +iU +iU +yR +yR +wb +"} +(128,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +qd +jq +jq +jz +jq +jq +qd +jq +jq +jq +jz +jq +jz +jq +BD +BD +BD +jq +qd +jq +uE +lH +GC +GC +GC +GC +GC +GC +GC +GC +Vq +cY +Gy +PG +EA +EA +EA +PG +Gy +cY +GC +cY +Gy +Gy +GC +fj +kB +GC +GC +GC +GC +EA +EA +EA +EA +uH +jz +Bs +re +AM +Tw +Bs +jq +wj +Ly +kS +Wz +bb +jV +gR +SZ +wj +KK +jz +MQ +ts +eq +ZN +MQ +iU +pE +Fc +XT +VU +pE +yR +xX +KD +GP +KD +xX +oa +KD +GP +xX +iU +yR +xX +bG +vx +xX +xX +Yf +iU +yR +pE +Fc +qf +VU +pE +yR +iU +iU +Eb +iU +iU +yR +rw +wb +"} +(129,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jC +jq +jq +jq +jq +jq +jq +qd +jz +jq +jq +jq +FE +Xp +NP +Xp +FE +jq +BD +BD +BD +jq +jq +jq +vC +Ga +Gy +GC +GC +Gy +YN +nD +sJ +GC +Vq +UZ +Gy +PG +EA +OQ +EA +PG +Gy +GC +GC +GC +Gy +Gy +An +iV +SK +GC +GC +GC +wz +EA +EA +EA +EA +uH +jq +Bs +re +AM +Tw +Bs +jq +wj +XB +ZR +CK +Fz +xl +xl +FL +wj +jq +jq +MQ +LW +ZN +hJ +MQ +yR +pE +zT +bH +dy +pE +iU +mP +KD +KD +wX +KD +KD +KD +KD +lA +iU +yR +xX +Cw +Cw +Sk +xX +xX +iU +iU +pE +Fc +qf +VU +pE +iU +iU +iU +iU +iU +sP +rw +rw +wb +"} +(130,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jz +jq +jz +jq +jz +jq +jq +jq +jq +FE +FE +FE +uF +uF +uF +FE +FE +FE +BD +BD +jq +jz +jq +jq +jz +Gy +GC +GC +Gy +Gy +Gy +Gy +GC +Vq +GC +ox +Te +EA +lF +EA +Te +NX +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +Gy +EA +EA +Gy +EA +uH +jq +Bs +re +AM +Tw +Bs +jz +wj +wj +wj +wj +SE +hn +hn +FL +wj +jq +jq +MQ +yB +ZN +dE +MQ +iU +il +pA +pA +pA +uK +iU +xX +lS +oa +KD +xX +KD +GP +KD +xX +iU +iU +iJ +Cw +Cw +Cw +bP +xX +iU +iU +pE +Fc +qf +VU +pE +rw +rw +yR +yR +iU +rw +rw +rw +wb +"} +(131,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jq +jq +jq +jq +jq +jq +FE +FE +Qf +uF +uF +hB +hB +uF +Uf +FE +FE +BD +jz +jq +jq +jq +jz +Gy +GC +GC +GC +GC +GC +GC +GC +Vq +GC +qj +PG +EA +Gs +EA +PG +SF +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +Gy +EA +EA +EA +EA +uH +jq +Bs +re +AM +Tw +Bs +jq +wj +ZJ +fc +fc +Fq +ZS +kl +FL +wj +jz +jq +MQ +MQ +MQ +MQ +MQ +iU +iU +iU +iU +iU +yR +iU +xX +xX +fO +Og +xX +xX +KD +KD +xX +IO +yR +iJ +Cw +pR +Cw +NV +xX +iU +iU +pE +Fc +qf +VU +pE +rw +rw +rw +iU +IO +rw +rw +rw +wb +"} +(132,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +qd +jq +jq +dJ +jq +jq +jz +FE +FE +YW +uF +uF +sz +uF +hB +uF +uF +hB +FE +FE +jq +jq +sV +KK +jq +Gy +RN +YN +Ng +Ng +sJ +zC +GC +Vq +GC +ox +Te +EA +OQ +EA +Te +NX +GC +GC +GC +zC +GC +GC +GC +GC +GC +zC +GC +Gy +EA +EA +Gy +EA +uH +jq +Bs +re +AM +Tw +Bs +jz +wj +TD +sM +bn +rD +kl +RS +FL +wj +jq +jq +jq +jq +jq +jq +iU +IO +yR +iU +iU +iU +yR +iU +iU +IO +iU +iU +yR +xX +KD +Yz +xX +iU +iU +xX +xX +xX +qI +xX +xX +xX +IO +pE +Fc +qf +VU +pE +rw +rw +rw +iU +iU +rw +rw +rw +wb +"} +(133,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +KK +jq +jq +jq +jq +jq +jq +FE +VB +hB +hB +hB +uF +kt +uF +le +uF +hB +in +FE +jq +jq +jq +jq +jz +Gy +Gy +Gy +Gy +Gy +Gy +Gy +GC +Vq +GC +Gy +PG +vD +lF +EA +wa +Gy +GC +GC +GC +Gy +Gy +Gy +Gy +GC +Uy +Gy +Gy +Gy +EA +EA +EA +EA +uH +jz +Bs +Vw +AM +Tw +Bs +jq +wj +CK +CK +wj +Fo +aP +aP +FL +Ce +jq +jq +KK +jq +jq +jq +iU +iU +nT +mU +XJ +mU +nT +iU +iU +iU +yR +Yf +iU +xX +wX +KD +xX +iU +iU +xX +Cw +tT +Cw +Cw +Cw +xX +yR +pE +Fc +qf +VU +pE +rw +Yf +iU +yR +iU +rw +rw +rw +wb +"} +(134,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jq +jz +jq +jq +jq +FE +FE +vR +uF +hB +uF +uF +FE +VB +uF +YW +uF +uF +FE +FE +jz +qd +jq +jz +BD +BD +BD +BD +BD +BD +Gy +pS +Vq +GC +Gy +PG +pK +pK +pK +PG +Gy +GC +GC +pS +Gy +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +Gy +EA +uH +jq +Bs +re +AM +Tw +Bs +jq +jq +qd +jq +wj +Ao +bn +bn +ZA +kS +jz +jq +dJ +jq +jz +jq +nT +nT +nT +Lb +GF +uy +nT +nT +nT +iU +yR +iU +iU +xX +KD +KD +mP +yR +iU +xX +bg +jR +NV +hs +Cw +PU +iU +pE +Fc +qf +VU +pE +iU +iU +yR +iU +yR +iU +iU +rw +wb +"} +(135,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +jq +jq +qd +jq +Xp +uF +uF +hB +xL +uF +KT +FE +Au +VB +uF +uF +uF +uF +Xp +jq +jq +jq +jq +jq +jz +BD +BD +BD +BD +Gy +cY +Vq +GC +YK +id +Kg +aM +Kg +id +MG +GC +GC +cY +Gy +EA +EA +Gy +EA +EA +EA +Gy +EA +Gy +EA +EA +EA +uH +KK +Bs +re +AM +Tw +Bs +sV +jq +jq +jz +wj +wj +wj +wj +wj +wj +jq +jq +jq +jq +jq +nT +nT +zq +lV +ss +uA +MO +Od +OM +nT +nT +iU +iU +yR +xX +wS +xX +xX +iU +yR +xX +bg +NV +qU +hs +Cw +Cw +yR +pE +Fc +qf +VU +pE +sP +iU +iU +Be +iU +yR +iU +iU +wb +"} +(136,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jz +jq +jq +jq +jq +jz +jq +Mz +uF +uF +uF +wg +FE +FE +FE +FE +FE +mL +hB +Kx +Qa +Mq +jq +jq +jz +jz +jq +jq +jq +jq +jz +BD +Gy +GC +Vq +Vq +qj +id +id +id +id +id +SF +GC +GC +GC +Gy +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +EA +uH +jq +Bs +Vw +AM +Tw +Bs +jz +jq +jq +jz +jq +jq +jq +jq +jq +jz +jq +jq +jq +jq +nT +nT +zq +nK +Xr +uA +uA +uA +uA +uI +FF +nT +nT +iU +iU +iU +iU +iU +iU +iU +iU +xX +Cw +JG +JG +Cw +Cw +xX +iU +pE +Fc +qf +VU +pE +iU +iU +iU +iU +iU +iU +Hf +iU +wb +"} +(137,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +qd +jz +jq +sV +jq +jz +jq +jq +jq +Xp +uF +uF +hB +uF +uF +hB +FE +Uf +hB +uF +uF +Qa +uF +Xp +jz +jq +jq +jq +dJ +jq +dD +jq +jq +jq +Gy +GC +Gy +Jw +GC +nP +nP +nP +nP +nP +GC +GC +Gy +GC +Gy +Ga +Ga +Ga +Ga +Ga +Ga +Ga +Ga +Ga +Ga +Ga +Ga +tq +jq +Bs +re +AM +Tw +Bs +jq +jq +jq +qd +jq +jq +jz +jq +jq +jq +jq +jq +jq +jz +nT +cg +Xo +gF +gF +Tm +nC +rH +gF +gF +Qo +cR +nT +iU +yR +yR +iU +iU +yR +iU +iU +xX +xX +xX +xX +xX +xX +xX +iU +pE +Fc +qf +VU +pE +IO +iU +iU +iU +yR +iU +iU +iU +wb +"} +(138,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jz +jq +jz +jq +jq +jq +BD +BD +FE +FE +hB +uF +uF +hB +uF +FE +vQ +Kx +FK +Qa +Qa +FE +FE +jq +jq +jq +jq +jq +jq +qd +jq +jq +jz +Gy +GC +GC +GC +GC +GC +GC +zC +GC +GC +GC +GC +GC +GC +Gy +jq +jq +jz +jq +jq +jz +qd +jq +dD +jq +jq +jq +jq +jz +Bs +re +AM +Tw +Bs +jz +QA +QA +QA +QA +QA +QA +El +El +QA +QA +jz +jq +nT +nT +hM +uA +gF +uA +LJ +nT +gN +uA +gF +uA +au +nT +nT +iU +iU +iU +Be +iU +iU +yR +iU +iU +iU +yR +iU +IO +iU +sP +pE +Fc +qf +VU +pE +yR +yR +iU +iU +iU +iU +iU +yR +wb +"} +(139,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jz +jq +dJ +jq +jq +jq +jq +jq +BD +BD +BD +FE +Uf +uF +YW +uF +hB +dp +uF +uF +uF +hB +hB +FE +jz +jq +jz +jq +jq +jq +jq +jz +KK +jq +jq +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +Gy +jq +KK +jq +sV +jq +dJ +jq +jz +jq +jq +jz +jq +BD +jq +Bs +re +AM +Tw +Bs +jq +QA +bc +jE +No +QA +Ub +jE +XL +NU +QA +jz +jq +mU +TO +xP +uA +Tm +Oj +rV +nT +qv +aK +rH +uA +Tf +pe +mU +iU +iU +iU +iU +iU +iU +iU +IO +yR +iU +iU +JK +iU +iU +yR +pE +Fc +qf +VU +pE +yR +iU +rw +rw +iU +iU +iU +iU +wb +"} +(140,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jz +jq +jq +jq +jq +jq +qd +jq +BD +BD +BD +BD +FE +FE +uF +uF +uF +uF +uF +Qf +uF +uF +Qs +FE +FE +jq +jq +jz +qd +jq +jq +jq +jq +jz +jq +jq +jq +jz +jq +jq +jz +jq +qd +jq +jq +jq +jz +jq +jq +jz +jq +jq +jq +jq +jq +jq +jq +jq +jq +jq +jq +BD +BD +BD +jz +Bs +re +AM +Tw +Bs +jq +QA +Sw +jE +uj +QA +NU +jE +jE +cv +QA +jq +jq +gf +Os +gF +gF +Lk +nT +nT +nT +nT +nT +cC +uA +uA +IL +Jk +yR +iU +iU +iU +iU +xX +xX +xX +xX +xX +xX +xX +xX +xX +iU +pE +Fc +qf +VU +pE +iU +rw +rw +rw +rw +yR +iU +iU +wb +"} +(141,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +Jq +jq +jq +jq +jq +jq +jq +jz +BD +BD +BD +BD +BD +jz +FE +FE +vR +VB +uF +uF +uF +uF +uF +FE +FE +jq +Jq +jq +jq +jq +jq +jz +BD +BD +jq +jq +jq +qd +jq +jq +jq +jq +jq +jq +jq +KK +jq +jq +jz +jq +qd +jq +jq +jz +jq +jz +jq +jq +jq +jz +jq +jq +BD +BD +BD +qd +Bs +re +AM +Tw +Bs +jq +El +BA +jE +NU +QA +KJ +jE +jE +ev +QA +jq +jq +mU +sy +bO +uA +Rb +Uk +YF +nT +yP +Uk +wh +uA +ae +xe +mU +iU +iU +Hf +iU +iU +xX +bg +VC +hs +Cw +tO +Bm +NV +xX +iU +pE +Fc +qf +VU +pE +iU +rw +rw +rw +rw +iU +iU +yR +wb +"} +(142,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +jq +KK +jq +jq +BD +BD +BD +BD +BD +jq +jq +FE +FE +FE +uF +uF +uF +FE +FE +FE +jz +jq +jq +jq +jq +jz +jz +BD +BD +BD +BD +jz +jq +jq +jq +sV +jq +jq +jz +jz +jq +jq +jz +BD +BD +jq +jq +jq +jq +jq +jq +BD +BD +BD +jz +jq +jq +jz +Jq +BD +jq +jq +Bs +re +AM +Tw +Bs +jq +KQ +BA +jE +jE +QA +QA +QA +fW +QA +QA +jq +jq +nT +nT +SM +uA +uA +uA +jc +nT +hM +uA +uA +uA +hk +nT +nT +iU +iU +iU +iU +iU +yt +Cw +Cw +Cw +Ct +jP +jP +jP +xX +yR +pE +Fc +qf +VU +pE +iU +rw +rw +iU +iU +IO +iU +sP +wb +"} +(143,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +dD +jq +jq +jq +jq +jq +jq +BD +BD +jz +jz +jq +jq +jq +jz +jq +FE +Xp +NP +Xp +FE +jq +KK +jq +jq +jq +jz +jq +jz +BD +BD +BD +BD +BD +BD +jq +jq +jz +jq +jq +jq +jz +jq +jq +jq +BD +BD +BD +BD +jq +jq +Jq +jq +BD +BD +BD +BD +BD +BD +jq +jq +jq +jq +jq +jz +Bs +re +AM +Tw +Bs +jz +El +jE +Ij +jE +kE +cw +Du +jE +iT +QA +jq +jz +jz +nT +qv +ih +uA +uA +Rb +hR +wh +uA +uA +ae +Mb +nT +iU +iU +yR +iU +iU +iU +xX +xX +xX +xX +xX +Cw +qQ +jP +DN +iU +pE +Fc +qf +VU +pE +yR +iU +iU +iU +iU +iU +yR +iU +wb +"} +(144,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jz +jq +us +jq +Jq +jq +jq +jq +jq +jq +dD +qd +jq +jq +jq +jq +jq +jq +jz +jq +jq +jq +jz +dD +jq +qd +jq +jq +BD +BD +BD +BD +BD +BD +BD +jq +jq +jq +jz +dJ +jq +jq +jq +jz +jq +BD +BD +BD +jz +jq +jq +BD +BD +BD +jz +BD +BD +BD +BD +jq +jz +KK +jq +jq +Bs +re +AM +Tw +Bs +jq +QA +lh +NU +fK +jE +GS +GS +GS +jE +Dw +jq +jq +jz +nT +nT +nB +mh +uA +uA +uA +uA +uA +Ns +Ka +nT +nT +sP +yR +iU +iU +iU +iU +xX +Sk +tO +Cw +xX +Cw +qQ +Cw +Cw +IO +pE +Fc +qf +VU +pE +iU +iU +yR +iU +CB +iU +iU +Be +wb +"} +(145,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jq +jz +jq +qd +jq +jz +jq +jq +jq +jq +jq +jq +jz +jq +jq +jq +qd +jq +jq +jq +jq +jq +jq +jq +jz +jq +jq +BD +BD +jq +BD +BD +jz +jq +jq +jq +jq +jq +jq +jq +jq +jq +jq +jq +jq +jz +jq +jq +jq +BD +jq +jq +jz +jq +jq +BD +BD +jq +jz +jq +jz +jq +Bs +re +AM +Tw +Bs +jq +QA +jE +gW +jE +WR +EZ +EL +sB +iT +QA +KK +jq +jq +jq +nT +nT +GH +QM +ih +uA +Qx +OP +bw +nT +nT +iU +iU +iU +rw +rw +yR +iU +xX +Cw +Cw +Cw +wH +Cw +Cw +Bm +xX +iU +pE +Fc +KR +VU +pE +iU +ya +iU +iU +iU +iU +iU +iU +wb +"} +(146,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +qd +jq +jq +jq +jq +jz +jq +sV +jq +jq +BD +BD +BD +BD +jz +jq +jq +jq +jq +jq +jz +jz +jq +jq +jq +jq +jz +BD +jq +jz +jz +jq +jq +qd +jq +jq +jq +jz +jq +jq +KK +jz +jq +us +jq +jq +jq +jq +jz +jq +jq +jq +qd +jz +jq +jq +jq +jq +jq +jq +jq +jq +Bs +re +AM +Bc +Bs +jz +QA +QA +QA +QA +QA +QA +QA +QA +QA +QA +jz +jq +jq +jq +jq +nT +nT +nT +tJ +tv +Mb +nT +nT +nT +iU +yR +iU +rw +rw +rw +iU +iU +xX +sq +ak +NV +xX +Cw +OD +NV +xX +iU +pE +Fc +qf +VU +pE +iU +iU +iU +UX +iU +yR +iU +yR +wb +"} +(147,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +rA +jq +jq +jz +jq +dJ +jq +jq +jq +jq +jq +jq +BD +BD +BD +jq +jq +dJ +jq +jz +BD +BD +BD +jz +jq +KK +jq +jq +jz +jq +jq +jq +jq +jq +jq +jz +jq +Jq +jq +BD +BD +jq +jq +jz +jq +jq +jz +qd +jq +jq +jq +jz +jq +jq +KK +jq +jz +jq +qd +jq +jq +jz +us +Bs +re +AM +Tw +Bs +jq +jq +qd +jq +jz +jq +jq +jq +jq +jq +jz +jz +jq +us +jq +jq +iU +yR +nT +mU +XJ +mU +nT +iU +iU +iU +iU +iU +rw +rw +rw +iU +yR +xX +xX +iJ +iJ +xX +xX +xX +xX +xX +iU +pE +Fc +qf +VU +pE +yR +iU +sP +iU +iU +yR +Zv +iU +wb +"} +(148,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jC +jq +jz +jq +jq +jq +jq +KK +qd +jz +jq +Jq +BD +jq +qd +jq +jq +jq +BD +BD +BD +BD +BD +BD +jz +jq +jq +jq +jq +qd +jq +jq +jz +jq +jq +BD +BD +BD +BD +BD +BD +BD +jq +jq +jz +jq +jq +jq +jq +BD +BD +BD +jq +jq +jq +jz +BD +BD +BD +jz +jz +jq +Bs +re +AM +Tw +Bs +jq +jq +jz +jq +Jq +jq +jz +jq +dJ +jq +jq +jq +jq +jq +jq +qd +iU +yR +iU +iU +iU +iU +iU +yR +iU +IO +iU +iU +yR +iU +iU +iU +iU +iU +JK +yR +iU +iU +iU +iU +yR +iU +yR +pE +Fc +qf +VU +pE +iU +IO +iU +Mo +iU +iU +yR +iU +wb +"} +(149,1,1) = {" +Qv +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +MU +jq +jq +jz +jq +jq +jq +jz +jz +jq +jq +jz +jq +jq +jq +jz +BD +BD +BD +BD +BD +BD +BD +BD +jC +jq +jq +jz +jq +jq +jz +jz +BD +BD +BD +BD +BD +BD +BD +BD +BD +BD +jz +jq +jz +jq +BD +BD +BD +BD +BD +BD +jq +jz +BD +BD +BD +BD +BD +BD +BD +Bs +re +AM +Tw +Bs +jz +jq +jq +jq +jq +qd +jq +jz +jq +jq +jq +jq +jq +jz +jz +jq +iU +iU +iU +JK +iU +iU +yR +iU +iU +yR +iU +iU +iU +iU +iU +sP +iU +yR +iU +iU +iU +yR +iU +IO +iU +iU +iU +pE +Fc +qf +VU +pE +iU +iU +yR +iU +iU +iU +yR +iU +wb +"} +(150,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +nX +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +wb +"} diff --git a/_maps/map_files/DaedalusPrison/DaedalusPrison.dmm b/_maps/map_files/DaedalusPrison/DaedalusPrison.dmm index 4d1a809cad6b9..cd638443ca6b6 100644 --- a/_maps/map_files/DaedalusPrison/DaedalusPrison.dmm +++ b/_maps/map_files/DaedalusPrison/DaedalusPrison.dmm @@ -2908,8 +2908,8 @@ /area/daedalusprison/inside/habitationnorth) "cwT" = ( /obj/machinery/door/airlock/centcom{ - name = "Nuclear Storage"; - dir = 1 + dir = 1; + name = "Nuclear Storage" }, /turf/open/floor/tile/dark2, /area/daedalusprison/caves/nukestorage) @@ -3120,8 +3120,8 @@ /area/daedalusprison/inside/southclass) "cGh" = ( /obj/machinery/door/airlock/mainship/medical/glass{ - name = "\improper Hydroponics Equipment"; - dir = 1 + dir = 1; + name = "\improper Hydroponics Equipment" }, /obj/machinery/atmospherics/pipe/simple/green/hidden, /turf/open/floor, @@ -4295,8 +4295,8 @@ /area/daedalusprison/inside/habitationsouth) "dDz" = ( /obj/machinery/door/airlock/multi_tile/mainship/engineering{ - name = "\improper Engineering"; - dir = 1 + dir = 1; + name = "\improper Engineering" }, /turf/open/floor/tile/dark2, /area/daedalusprison/inside/engineering) @@ -5161,8 +5161,8 @@ /area/daedalusprison/inside/gym) "emS" = ( /obj/machinery/door/airlock/multi_tile/mainship/medidoor{ - name = "Treatment"; - dir = 1 + dir = 1; + name = "Treatment" }, /turf/open/floor/prison/sterilewhite, /area/daedalusprison/inside/medical/treatment) @@ -6227,8 +6227,8 @@ /area/daedalusprison/inside/habitationnorth) "ffj" = ( /obj/machinery/door/airlock/multi_tile/mainship/secdoor/glass{ - name = "\improper Prison Security Office"; - dir = 1 + dir = 1; + name = "\improper Prison Security Office" }, /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -10622,8 +10622,8 @@ /area/daedalusprison/inside/medical) "iTh" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic/canteen{ - name = "\improper Colony Warehouse"; - dir = 1 + dir = 1; + name = "\improper Colony Warehouse" }, /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -12425,8 +12425,8 @@ /area/daedalusprison/inside/centralhalls) "kpe" = ( /obj/machinery/door/airlock/multi_tile/mainship/secdoor/glass{ - name = "\improper Prison Security Office"; - dir = 1 + dir = 1; + name = "\improper Prison Security Office" }, /turf/open/floor/prison, /area/daedalusprison/inside/security/office) @@ -12785,8 +12785,8 @@ /area/daedalusprison/inside/kitchen) "kFx" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic/canteen{ - name = "\improper Colony Bar"; - dir = 1 + dir = 1; + name = "\improper Colony Bar" }, /turf/open/floor/wood, /area/daedalusprison/inside/bar) @@ -13738,8 +13738,8 @@ /area/daedalusprison/inside/colonydorms) "lrN" = ( /obj/machinery/door/airlock/multi_tile/mainship/engineering{ - name = "\improper Engineering"; - dir = 1 + dir = 1; + name = "\improper Engineering" }, /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -15176,8 +15176,8 @@ /area/daedalusprison/inside/southclass) "mBJ" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic{ - name = "Showers"; - dir = 1 + dir = 1; + name = "Showers" }, /turf/open/floor/plating/plating_catwalk/prison, /area/daedalusprison/inside/prisonshower) @@ -15313,8 +15313,8 @@ /area/daedalusprison/inside/medical/treatment) "mHn" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic/canteen{ - name = "\improper Dormitories"; - dir = 1 + dir = 1; + name = "\improper Dormitories" }, /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -16784,8 +16784,8 @@ /area/daedalusprison/inside/security/office) "nOE" = ( /obj/machinery/door/airlock/mainship/medical/glass{ - name = "\improper Hydroponics Husbandry"; - dir = 1 + dir = 1; + name = "\improper Hydroponics Husbandry" }, /obj/machinery/atmospherics/pipe/simple/green/hidden, /turf/open/floor, @@ -17459,8 +17459,8 @@ /area/daedalusprison/inside/medical) "ovc" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic/canteen{ - name = "\improper Dormitories Computer Lab"; - dir = 1 + dir = 1; + name = "\improper Dormitories Computer Lab" }, /turf/open/floor/tile/dark2, /area/daedalusprison/inside/colonydorms) @@ -18431,8 +18431,8 @@ /area/daedalusprison/inside/mechanicshop) "pcM" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic/garden{ - name = "\improper Hydroponics Storage"; - dir = 1 + dir = 1; + name = "\improper Hydroponics Storage" }, /turf/open/floor, /area/daedalusprison/inside/hydroponics) @@ -22863,8 +22863,8 @@ /area/daedalusprison/inside/centralhalls) "sGg" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic{ - name = "\improper Chapel"; - dir = 1 + dir = 1; + name = "\improper Chapel" }, /turf/open/floor/wood, /area/daedalusprison/inside/chapel) @@ -23486,8 +23486,8 @@ /area/daedalusprison/inside/sportstorage) "tcw" = ( /obj/machinery/door/airlock/multi_tile/mainship/generic/canteen{ - name = "\improper Mineral Processing"; - dir = 1 + dir = 1; + name = "\improper Mineral Processing" }, /turf/open/floor/prison, /area/daedalusprison/inside/mining) @@ -23712,8 +23712,8 @@ /area/daedalusprison/inside/staffbreakroom) "tmj" = ( /obj/machinery/door/airlock/mainship/medical/glass/free_access{ - name = "\improper Prison Kitchen"; - dir = 1 + dir = 1; + name = "\improper Prison Kitchen" }, /turf/open/floor/prison/kitchen, /area/daedalusprison/inside/kitchen) @@ -24111,8 +24111,8 @@ /area/daedalusprison/inside/northmeetingroom) "tHF" = ( /obj/machinery/door/airlock/multi_tile/mainship/blackgeneric{ - name = "Interrogation"; - dir = 1 + dir = 1; + name = "Interrogation" }, /turf/open/floor/prison, /area/daedalusprison/inside/security/interrogation) @@ -25377,8 +25377,8 @@ }, /obj/structure/cable, /obj/machinery/door/airlock/multi_tile/mainship/blackgeneric{ - name = "Execution"; - dir = 1 + dir = 1; + name = "Execution" }, /turf/open/floor/prison/darkred{ dir = 8 @@ -26405,7 +26405,10 @@ /turf/open/floor/tile/red/full, /area/daedalusprison/inside/bunker/west) "vBE" = ( -/obj/machinery/conveyor/inverted, +/obj/machinery/conveyor{ + dir = 1; + id = "cargoload" + }, /turf/open/floor/prison, /area/daedalusprison/inside/mining) "vBI" = ( @@ -26946,8 +26949,8 @@ /area/daedalusprison/inside/hydroponics) "vZW" = ( /obj/machinery/door/airlock/mainship/medical/glass/free_access{ - name = "\improper Prison Kitchen"; - dir = 1 + dir = 1; + name = "\improper Prison Kitchen" }, /obj/machinery/atmospherics/pipe/simple/green/hidden, /obj/structure/cable, @@ -27484,8 +27487,8 @@ /area/daedalusprison/inside/secoffices) "wqd" = ( /obj/machinery/door/airlock/multi_tile/mainship/secdoor/glass{ - name = "\improper Prison Lobby"; - dir = 1 + dir = 1; + name = "\improper Prison Lobby" }, /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -27659,8 +27662,8 @@ /area/daedalusprison/caves/research) "wxc" = ( /obj/machinery/door/airlock/mainship/medical/glass/free_access{ - name = "\improper Dormitories Kitchen"; - dir = 1 + dir = 1; + name = "\improper Dormitories Kitchen" }, /obj/machinery/atmospherics/pipe/simple/green/hidden, /obj/structure/cable, @@ -28924,8 +28927,8 @@ /area/daedalusprison/inside/southmeetingroom) "xxK" = ( /obj/machinery/door/airlock/multi_tile/mainship/engineering{ - name = "\improper Chief Engineer's Office"; - dir = 1 + dir = 1; + name = "\improper Chief Engineer's Office" }, /turf/open/floor/tile/dark2, /area/daedalusprison/inside/engineering) @@ -69669,8 +69672,8 @@ gfH mVQ gfH gfH -mYW -mYW +gfH +gfH mYW mYW mYW @@ -69882,10 +69885,10 @@ ehP gfH gfH gfH +gfH gju mYW mYW -mYW wqt sLx "} @@ -70095,7 +70098,7 @@ gfH gfH gfH wWU -mYW +gfH mYW mYW wqt @@ -70283,7 +70286,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ sHQ @@ -70309,6 +70311,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -70495,7 +70498,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ bsT @@ -70518,6 +70520,7 @@ bsT sHQ sHQ gfH +gfH wWU gfH gfH @@ -70707,7 +70710,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ sHQ @@ -70733,6 +70735,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -70919,7 +70922,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ sHQ @@ -70945,6 +70947,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -71131,7 +71134,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ sHQ @@ -71157,6 +71159,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -71343,7 +71346,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ sHQ @@ -71369,6 +71371,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -71555,7 +71558,6 @@ gfH gfH gfH mra -gfH sHQ sHQ sHQ @@ -71581,6 +71583,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -71767,7 +71770,6 @@ tRj tRj tRj tRj -gfH sHQ sHQ sHQ @@ -71793,6 +71795,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -71979,7 +71982,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ sHQ @@ -72002,6 +72004,7 @@ sHQ sHQ sHQ gfH +gfH pCr gfH gfH @@ -72191,7 +72194,6 @@ gfH gfH gfH tRj -gfH sHQ sHQ bsT @@ -72217,6 +72219,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -72403,7 +72406,6 @@ xfe gfH gfH tRj -gfH sHQ sHQ sHQ @@ -72429,6 +72431,7 @@ gfH gfH gfH gfH +gfH mYW wqt sLx @@ -72850,8 +72853,8 @@ gfH viA gfH wWU -gju gfH +gju gfH mYW wqt diff --git a/_maps/map_files/Fort_Phobos/Fort_Phobos.dmm b/_maps/map_files/Fort_Phobos/Fort_Phobos.dmm index b368b7e7dc1ab..933d0b6e4563d 100644 --- a/_maps/map_files/Fort_Phobos/Fort_Phobos.dmm +++ b/_maps/map_files/Fort_Phobos/Fort_Phobos.dmm @@ -4,10 +4,20 @@ dir = 4 }, /area/mainship/patrol_base/som) -"af" = ( -/obj/structure/janitorialcart, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/som) +"ag" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/mainship_hull, +/area/mainship/patrol_base/som/hanger) +"ah" = ( +/obj/structure/table/reinforced, +/obj/item/storage/belt/lifesaver/som/quick, +/obj/effect/spawner/random/medical/pillbottle, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "ai" = ( /obj/effect/landmark/start/job/som/squadengineer, /turf/open/floor/mainship/office, @@ -43,26 +53,17 @@ /obj/effect/turf_decal/warning_stripes/box/empty, /turf/open/floor/plating/ground/concrete/lines, /area/mainship/patrol_base/som/hanger) -"au" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 6 +"av" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 8 }, -/turf/open/floor/mainship/cargo, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "ax" = ( /obj/structure/prop/vehicle/crawler{ dir = 1 }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"aH" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/mainship/red, -/area/mainship/patrol_base/som/prep) "aL" = ( /obj/effect/turf_decal/trimline/red/line{ dir = 1 @@ -83,28 +84,10 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"aZ" = ( -/obj/effect/landmark/start/job/som/staff_officer, -/turf/open/floor/mainship/red/corner, -/area/mainship/patrol_base/som) "ba" = ( /obj/effect/turf_decal/siding, /turf/open/floor/mainship/som/s, /area/mainship/patrol_base/som) -"bg" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/closed/wall/r_wall/prison_unmeltable, -/area/mainship/patrol_base/som) -"bh" = ( -/obj/effect/turf_decal/trimline/red/arrow_ccw{ - dir = 4 - }, -/turf/open/floor/mainship/red{ - dir = 8 - }, -/area/mainship/patrol_base/som/prep) "bk" = ( /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/som/hanger) @@ -114,6 +97,10 @@ }, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/command) +"bq" = ( +/obj/machinery/vending/engivend, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "br" = ( /obj/effect/turf_decal/warning_stripes/thick/corner{ dir = 4 @@ -127,10 +114,6 @@ /obj/machinery/telecomms/server/presets/medical/som, /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"bt" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "bv" = ( /obj/machinery/door/poddoor/campaign/som, /turf/open/floor/plating/ground/concrete, @@ -148,11 +131,6 @@ dir = 8 }, /area/mainship/patrol_base/som) -"bF" = ( -/turf/open/floor/mainship/red{ - dir = 1 - }, -/area/mainship/patrol_base/som/prep) "bH" = ( /obj/structure/largecrate, /turf/open/floor/plating/ground/concrete/lines, @@ -204,23 +182,12 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"cl" = ( -/turf/open/floor/mainship/red{ - dir = 8 - }, -/area/mainship/patrol_base/som/prep) "cp" = ( /obj/machinery/light{ dir = 1 }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"cr" = ( -/obj/structure/prop/mainship/doorblocker/patrol_base/wide_left{ - dir = 1 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "cs" = ( /obj/machinery/computer/som{ dir = 8 @@ -229,26 +196,6 @@ dir = 6 }, /area/mainship/patrol_base/som/command) -"cu" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) -"cx" = ( -/obj/effect/turf_decal/warning_stripes/box, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) -"cG" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mainship/blue/full, -/area/mainship/patrol_base/som/prep) -"cI" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mainship/red, -/area/mainship/patrol_base/som) "cO" = ( /obj/structure/platform_decoration{ dir = 8 @@ -283,10 +230,29 @@ dir = 1 }, /area/mainship/patrol_base/som/hanger) -"dl" = ( -/obj/structure/stairs/seamless, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) +"cZ" = ( +/obj/machinery/door/airlock/mainship/medical/free_access, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) +"df" = ( +/obj/structure/table/mainship/nometal, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "ds" = ( /obj/effect/turf_decal/siding{ dir = 6 @@ -313,29 +279,17 @@ dir = 4 }, /area/mainship/patrol_base/som/hanger) -"dK" = ( -/obj/structure/sign/securearea{ - dir = 1 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"dN" = ( -/obj/effect/turf_decal/warning_stripes/thin{ +"dF" = ( +/obj/machinery/camera/autoname/mainship/somship, +/obj/effect/turf_decal/trimline/blue/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 9 - }, -/turf/open/floor/mainship/cargo, +/turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"dO" = ( -/turf/open/floor/mainship/red/corner{ - dir = 1 - }, -/area/mainship/patrol_base/som/prep) +"dQ" = ( +/obj/vehicle/ridden/powerloader, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "dR" = ( /obj/machinery/light{ dir = 4 @@ -344,13 +298,6 @@ dir = 4 }, /area/mainship/patrol_base/som) -"dS" = ( -/obj/structure/barricade/guardrail, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "dV" = ( /obj/machinery/cic_maptable/som_maptable{ dir = 8 @@ -362,12 +309,6 @@ "dW" = ( /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"dZ" = ( -/obj/effect/decal/cleanable/blood{ - dir = 8 - }, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "ea" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/warning_stripes/box/empty, @@ -396,34 +337,10 @@ "en" = ( /turf/open/floor/mainship/office, /area/mainship/patrol_base/som) -"er" = ( -/obj/structure/lattice, -/obj/structure/monorail{ - dir = 10 - }, -/obj/structure/monorail{ - dir = 6 - }, -/turf/open/shuttle/escapepod/plain, -/area/mainship/patrol_base/som) -"es" = ( -/obj/effect/landmark/campaign/mech_spawner/som/light, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/obj/machinery/camera/autoname/mainship/somship{ - dir = 4 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "ev" = ( /obj/structure/bed/chair/dropship/passenger, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/som/hanger) -"ew" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/purple/full, -/area/mainship/patrol_base/som/prep) "ey" = ( /obj/machinery/shower{ dir = 8 @@ -434,6 +351,12 @@ }, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) +"eE" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/turf/open/floor/mainship/white/corner, +/area/mainship/patrol_base/som) "eI" = ( /obj/structure/toilet{ pixel_x = -4 @@ -478,12 +401,28 @@ dir = 1 }, /area/mainship/patrol_base/som/command) +"fc" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/patrol_base/som/medical) "fe" = ( /obj/structure/somcas/four/left{ dir = 8 }, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) +"fj" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/mainship/patrol_base/som/medical) +"fl" = ( +/obj/machinery/computer/autodoc_console, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "fn" = ( /obj/structure/platform{ dir = 1 @@ -493,6 +432,12 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) +"fo" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "ft" = ( /obj/structure/somcas/left{ dir = 8 @@ -503,6 +448,19 @@ /obj/structure/window/framed/prison/reinforced/nonshutter_hull, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/som/command) +"fC" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/turf/open/floor/mainship/white{ + dir = 4 + }, +/area/mainship/patrol_base/som) +"fM" = ( +/turf/open/floor/mainship/sterile/corner{ + dir = 4 + }, +/area/mainship/patrol_base/som/medical) "fN" = ( /obj/effect/turf_decal/warning_stripes/thick/corner{ dir = 4 @@ -527,15 +485,6 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) -"fZ" = ( -/turf/closed/shuttle/dropship2/window, -/area/mainship/patrol_base/som) -"gk" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/green/full, -/area/mainship/patrol_base/som/prep) "gl" = ( /obj/structure/stairs/seamless, /turf/open/floor/plating/ground/concrete/lines, @@ -544,6 +493,12 @@ /obj/machinery/telecomms/server/presets/zulu, /turf/open/floor/mainship, /area/mainship/patrol_base/som) +"gs" = ( +/obj/machinery/door/poddoor/two_tile_hor/teleporter, +/turf/open/floor/mainship/white{ + dir = 8 + }, +/area/mainship/patrol_base/som) "gu" = ( /obj/effect/turf_decal/warning_stripes/thick{ dir = 4 @@ -555,6 +510,13 @@ dir = 1 }, /area/mainship/patrol_base/som) +"gA" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "gB" = ( /obj/structure/somcas/one/left{ dir = 8 @@ -576,79 +538,26 @@ dir = 6 }, /area/mainship/patrol_base/som/barracks) -"gK" = ( -/obj/structure/barricade/guardrail{ - dir = 1 - }, -/obj/structure/dropship_piece/two/front, -/obj/effect/decal/cleanable/blood/oil/armorblood{ - dir = 8 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "gL" = ( /turf/open/floor/plating/ground/concrete/edge, /area/mainship/patrol_base/som) -"gM" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 5 - }, -/turf/open/floor/mainship/cargo, -/area/mainship/patrol_base/som) "gQ" = ( /turf/open/floor/plating/ground/concrete/edge{ dir = 4 }, /area/mainship/patrol_base/som) -"gS" = ( -/turf/closed/wall/r_wall/prison_unmeltable, -/area/mainship/patrol_base/som/prep) "gT" = ( /turf/open/floor/mainship/white{ dir = 1 }, /area/mainship/patrol_base/som/hanger) -"gW" = ( -/obj/structure/prop/mainship/doorblocker/patrol_base/wide_left{ - dir = 8 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"hh" = ( -/obj/structure/stairs/seamless/platform_vert{ - dir = 8 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "hi" = ( /obj/machinery/camera/autoname/mainship/somship, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"hk" = ( -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 - }, -/turf/open/floor/mainship_hull/dir{ - dir = 4 - }, -/area/mainship/patrol_base/som) "hm" = ( /turf/closed/mineral/smooth/indestructible, /area/mainship/patrol_base/som) -"ho" = ( -/obj/structure/barricade/guardrail{ - dir = 4 - }, -/obj/structure/bed/chair/office/dark, -/obj/structure/prop/mainship/prop_tech/som, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) "hp" = ( /obj/structure/ship_ammo/cas/rocket/widowmaker, /turf/open/floor/mainship/red{ @@ -686,6 +595,28 @@ dir = 4 }, /area/mainship/patrol_base/som/barracks) +"hE" = ( +/obj/structure/table/mainship/nometal, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/machinery/camera/autoname/mainship/somship{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "hI" = ( /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) @@ -695,29 +626,26 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"hX" = ( -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) +"ia" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/mainship/patrol_base/som) "ib" = ( /obj/machinery/light/mainship{ dir = 1 }, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) -"ic" = ( -/obj/structure/largecrate/supply/explosives, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) -"ie" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 +"ik" = ( +/obj/machinery/light{ + dir = 8 }, /turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"ik" = ( -/obj/structure/stairs/seamless/platform, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/equipment_bay) "im" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -728,12 +656,6 @@ }, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) -"is" = ( -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "ix" = ( /turf/open/floor/mainship/red, /area/mainship/patrol_base/som/hanger) @@ -741,6 +663,12 @@ /obj/structure/prop/mainship/prop_so/som, /turf/open/floor/mainship/silver, /area/mainship/patrol_base/som/command) +"iB" = ( +/obj/effect/landmark/campaign/mech_spawner/som/light, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, +/obj/machinery/camera/autoname/mainship/somship, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "iC" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/mainship/patrol_base/som/barracks) @@ -756,12 +684,8 @@ /turf/open/floor/mainship, /area/mainship/patrol_base/som) "iJ" = ( -/turf/open/space/basic, -/area/mainship/patrol_base/som) -"iQ" = ( -/obj/machinery/door/poddoor/mainship/indestructible, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "iS" = ( /turf/open/floor/plating/ground/concrete/lines{ dir = 9 @@ -774,12 +698,15 @@ dir = 1 }, /area/mainship/patrol_base/som/command) -"iV" = ( -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "iY" = ( /turf/closed/shuttle/dropship_regular/backwall, /area/mainship/patrol_base/som/hanger) +"iZ" = ( +/obj/machinery/computer/autodoc_console, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "je" = ( /obj/structure/stairs/seamless/platform_vert{ dir = 4 @@ -831,22 +758,27 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) +"jH" = ( +/obj/structure/table/reinforced, +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) "jK" = ( /obj/structure/stairs/seamless, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"jV" = ( -/obj/structure/window/framed/prison/reinforced/nonshutter_hull, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som/prep) "jW" = ( /obj/machinery/light, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som/barracks) -"ki" = ( -/obj/machinery/vending/tool, -/turf/open/floor/mainship/red, -/area/mainship/patrol_base/som/prep) +"jX" = ( +/obj/effect/turf_decal/trimline/red/arrow_ccw{ + dir = 1 + }, +/turf/open/floor/mainship_hull, +/area/mainship/patrol_base/som/hanger) "kn" = ( /obj/machinery/computer/teleporter, /turf/open/floor/mainship_hull, @@ -855,6 +787,14 @@ /obj/structure/prop/vehicle/crane/cranecargo, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"kt" = ( +/obj/structure/table/reinforced, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/machinery/light, +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) "ky" = ( /obj/effect/landmark/start/job/som/fieldcommander, /turf/open/floor/mainship/red{ @@ -871,13 +811,16 @@ }, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) -"kH" = ( -/obj/machinery/camera/autoname/mainship/somship{ +"kC" = ( +/obj/structure/closet/secure_closet/medical3/colony, +/turf/open/floor/mainship/sterile/corner, +/area/mainship/patrol_base/som/medical) +"kJ" = ( +/obj/structure/closet/secure_closet/medical3/colony, +/turf/open/floor/mainship/sterile/side{ dir = 4 }, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som/prep) +/area/mainship/patrol_base/som/medical) "kN" = ( /obj/machinery/telecomms/bus/preset_three, /turf/open/floor/mainship, @@ -905,12 +848,6 @@ /obj/machinery/telecomms/bus/preset_two, /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"la" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mainship/orange/full, -/area/mainship/patrol_base/som/prep) "lh" = ( /obj/machinery/light{ dir = 8 @@ -922,14 +859,6 @@ /obj/machinery/light, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/barracks) -"lo" = ( -/obj/structure/barricade/guardrail{ - dir = 4 - }, -/obj/structure/table/mainship, -/obj/machinery/light, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) "ly" = ( /obj/machinery/telecomms/receiver/preset_left/som, /turf/open/floor/mainship, @@ -950,30 +879,35 @@ }, /turf/open/floor/mainship/white/full, /area/mainship/patrol_base/som/hanger) -"lE" = ( -/obj/effect/decal/cleanable/blood/oil/streak{ - dir = 1 - }, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "lL" = ( /obj/structure/prop/mainship/prop_tech/som{ dir = 1 }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"lN" = ( +/obj/effect/landmark/campaign/mech_spawner/som, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, +/obj/machinery/camera/autoname/mainship/somship{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "lY" = ( /obj/effect/turf_decal/siding{ dir = 6 }, /turf/open/floor/mainship/som/sw, /area/mainship/patrol_base/som) -"lZ" = ( -/obj/machinery/light{ +"mb" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner{ dir = 4 }, -/turf/open/floor/mainship/purple/full, -/area/mainship/patrol_base/som/prep) +/turf/open/floor/mainship_hull, +/area/mainship/patrol_base/som/hanger) "mi" = ( /turf/open/floor/plating/ground/concrete/lines{ dir = 1 @@ -994,30 +928,16 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"mr" = ( -/obj/structure/prop/mainship/doorblocker/patrol_base/wide_right{ +"mp" = ( +/obj/effect/turf_decal/trimline/blue/line{ dir = 8 }, -/turf/open/floor/plating/ground/concrete, +/turf/open/floor/mainship/red/corner, /area/mainship/patrol_base/som) "mt" = ( -/obj/effect/landmark/reward_spawn_location/som, -/obj/effect/turf_decal/warning_stripes/box/empty, -/obj/structure/closet/crate, +/obj/machinery/vending/tool, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"mB" = ( -/turf/open/floor/mainship_hull/dir{ - dir = 5 - }, -/area/mainship/patrol_base/som) -"mG" = ( -/obj/structure/stairs/seamless, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "mJ" = ( /obj/structure/somcas/five/left{ dir = 8 @@ -1028,6 +948,12 @@ /obj/structure/somcas/seven/left, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) +"mL" = ( +/obj/machinery/computer/body_scanconsole, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "mO" = ( /obj/machinery/telecomms/processor/preset_two, /turf/open/floor/mainship, @@ -1042,21 +968,29 @@ /obj/machinery/telecomms/processor/preset_one, /turf/open/floor/mainship, /area/mainship/patrol_base/som) +"mW" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "mY" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) -"nc" = ( -/obj/structure/table/mainship, -/obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) -"ne" = ( -/obj/structure/barricade/guardrail, -/turf/open/floor/mainship/mono, +"nj" = ( +/obj/effect/turf_decal/trimline/red/arrow_ccw{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/arrow_cw, +/turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"nk" = ( +/obj/machinery/computer/body_scanconsole, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "np" = ( /obj/machinery/camera/autoname/mainship/somship{ dir = 1 @@ -1078,12 +1012,6 @@ /obj/structure/prop/mainship/sensor_computer1, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"nF" = ( -/obj/machinery/door/poddoor/two_tile_ver, -/turf/open/floor/mainship/cargo/arrow{ - dir = 4 - }, -/area/mainship/patrol_base/som) "nH" = ( /obj/machinery/light{ dir = 4 @@ -1109,14 +1037,14 @@ }, /turf/open/floor/mainship/som/nw, /area/mainship/patrol_base/som/barracks) -"nQ" = ( -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som/prep) "nR" = ( /obj/machinery/telecomms/relay/preset/telecomms, /turf/open/floor/mainship, /area/mainship/patrol_base/som) +"nS" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "nT" = ( /turf/closed/shuttle/dropship_regular/top_corner/alt{ dir = 1 @@ -1147,28 +1075,19 @@ /obj/machinery/door/poddoor/mainship/indestructible, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"or" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, -/obj/effect/turf_decal/warning_stripes/thin, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 10 - }, -/turf/open/floor/mainship/cargo, -/area/mainship/patrol_base/som) +"oo" = ( +/obj/effect/landmark/campaign/mech_spawner/som, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "os" = ( /obj/structure/prop/mainship/doorblocker/patrol_base/som, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"ou" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) -"ow" = ( -/obj/structure/prop/mainship/doorblocker/patrol_base/wide_right, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +"ox" = ( +/obj/structure/table/reinforced, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "oy" = ( /obj/structure/platform_decoration{ dir = 8 @@ -1183,12 +1102,6 @@ dir = 4 }, /area/mainship/patrol_base/som) -"oD" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mainship/purple/full, -/area/mainship/patrol_base/som/prep) "oK" = ( /obj/structure/platform/metalplatform{ dir = 5 @@ -1204,10 +1117,28 @@ dir = 1 }, /area/mainship/patrol_base/som/command) +"oQ" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/arrow_cw, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "oV" = ( /obj/machinery/light/red, /turf/open/floor/mainship/red, /area/mainship/patrol_base/som/command) +"oX" = ( +/obj/structure/table/reinforced, +/obj/item/roller, +/obj/effect/spawner/random/medical/pillbottle, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/patrol_base/som/medical) "oY" = ( /obj/structure/reagent_dispensers/fueltank/barrel, /turf/open/floor/plating/ground/concrete, @@ -1218,16 +1149,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/som/hanger) +"pk" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/arrow_ccw{ + dir = 4 + }, +/turf/open/floor/mainship_hull, +/area/mainship/patrol_base/som/hanger) "pt" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, /turf/open/floor/mainship/floor, /area/mainship/patrol_base/som) -"pu" = ( -/obj/structure/platform_decoration, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "px" = ( /obj/machinery/light{ dir = 8 @@ -1244,22 +1180,31 @@ dir = 8 }, /area/mainship/patrol_base/som/hanger) -"pN" = ( -/obj/structure/closet/crate, +"pF" = ( +/obj/vehicle/ridden/wheelchair, +/turf/open/floor/mainship/sterile/corner{ + dir = 8 + }, +/area/mainship/patrol_base/som/medical) +"pH" = ( +/obj/effect/landmark/campaign/mech_spawner/som/light, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, /turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/equipment_bay) "pR" = ( /obj/structure/benchpress, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som/barracks) "pS" = ( -/obj/effect/landmark/campaign/mech_spawner/som, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/obj/machinery/camera/autoname/mainship/somship{ +/obj/structure/table/reinforced, +/obj/item/bodybag/cryobag, +/obj/structure/extinguisher_cabinet{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ dir = 8 }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "pT" = ( /obj/structure/sink{ dir = 1 @@ -1269,9 +1214,6 @@ }, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) -"pU" = ( -/turf/closed/shuttle/dropship2/singlewindow, -/area/mainship/patrol_base/som) "pY" = ( /obj/structure/prop/mainship/prop_tech/som, /turf/open/floor/plating/ground/concrete, @@ -1279,31 +1221,10 @@ "pZ" = ( /turf/open/floor/mainship/silver, /area/mainship/patrol_base/som/command) -"qg" = ( -/obj/structure/table/mainship/nometal, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/turf/open/floor/mainship/red{ - dir = 5 - }, -/area/mainship/patrol_base/som/prep) +"qc" = ( +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "qh" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -1378,12 +1299,10 @@ }, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) -"qB" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/purple/full, -/area/mainship/patrol_base/som/prep) +"qE" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "qI" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/mainship_hull/gray, @@ -1446,19 +1365,6 @@ "rE" = ( /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som/barracks) -"rG" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/vending/engivend, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"rI" = ( -/obj/effect/decal/cleanable/blood/oil/streak{ - dir = 8 - }, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "rK" = ( /obj/structure/patrol_point/som_23, /turf/open/shuttle/elevator/grating, @@ -1469,11 +1375,6 @@ dir = 1 }, /area/mainship/patrol_base/som) -"rR" = ( -/turf/open/floor/mainship_hull/dir{ - dir = 10 - }, -/area/mainship/patrol_base/som) "rT" = ( /obj/structure/stairs/seamless/platform{ dir = 1 @@ -1516,9 +1417,10 @@ }, /turf/open/floor/plating/ground/concrete/lines, /area/mainship/patrol_base/som) -"ss" = ( -/turf/closed/mineral/smooth/indestructible, -/area/mainship/patrol_base/som/prep) +"sq" = ( +/obj/vehicle/ridden/wheelchair, +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) "sx" = ( /obj/structure/bed/chair/nometal{ dir = 1 @@ -1549,19 +1451,20 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"sY" = ( -/obj/machinery/door/poddoor/campaign/som, -/turf/open/floor/mainship/floor, -/area/mainship/patrol_base/som) -"tc" = ( -/turf/open/floor/mainship/red/corner, -/area/mainship/patrol_base/som/prep) -"tf" = ( -/obj/structure/bed/chair/nometal{ +"sT" = ( +/obj/structure/closet/secure_closet/medical3/colony, +/turf/open/floor/mainship/sterile/corner{ dir = 4 }, -/turf/open/floor/mainship/orange/full, -/area/mainship/patrol_base/som/prep) +/area/mainship/patrol_base/som/medical) +"th" = ( +/obj/effect/turf_decal/trimline/blue/arrow_cw{ + dir = 8 + }, +/turf/open/floor/mainship/red{ + dir = 4 + }, +/area/mainship/patrol_base/som) "tj" = ( /obj/machinery/light{ dir = 4 @@ -1570,6 +1473,12 @@ dir = 4 }, /area/mainship/patrol_base/som/hanger) +"tk" = ( +/obj/machinery/camera/autoname/mainship/somship{ + dir = 8 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "tt" = ( /obj/machinery/telecomms/processor/preset_four/som, /turf/open/floor/mainship, @@ -1583,11 +1492,6 @@ /obj/structure/prop/mainship/som_scientist/alt, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"ty" = ( -/turf/open/floor/mainship_hull/dir{ - dir = 9 - }, -/area/mainship/patrol_base/som) "tz" = ( /obj/structure/stairs/seamless{ dir = 4 @@ -1623,6 +1527,14 @@ "ua" = ( /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) +"uc" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 4 + }, +/area/mainship/patrol_base/som/medical) "ue" = ( /obj/machinery/computer3/server/rack, /turf/open/floor/mainship/red{ @@ -1633,29 +1545,6 @@ /obj/machinery/telecomms/server/presets/common/som, /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"uh" = ( -/obj/structure/table/mainship/nometal, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "uk" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/floor/mainship/red{ @@ -1681,12 +1570,6 @@ /obj/structure/prop/mainship/sensor_computer3, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"uz" = ( -/obj/structure/stairs/seamless/platform_vert{ - dir = 4 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "uA" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -1743,30 +1626,22 @@ /turf/open/floor/mainship/white/full, /area/mainship/patrol_base/som/hanger) "uL" = ( -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/mainship/red/corner{ - dir = 1 - }, -/area/mainship/patrol_base/som/prep) +/obj/effect/landmark/reward_spawn_location/som, +/obj/structure/closet/crate, +/obj/effect/turf_decal/warning_stripes/box/empty, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "uN" = ( /turf/open/floor/mainship/white{ dir = 9 }, /area/mainship/patrol_base/som/hanger) -"uV" = ( -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"vd" = ( -/obj/effect/turf_decal/trimline/red/arrow_ccw{ - dir = 1 +"uO" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) +/turf/open/floor/mainship_hull, +/area/mainship/patrol_base/som/hanger) "ve" = ( /turf/open/floor/mainship/red/corner{ dir = 1 @@ -1786,10 +1661,6 @@ dir = 10 }, /area/mainship/patrol_base/som/command) -"vj" = ( -/obj/machinery/door/airlock/mainship/maint, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/som) "vv" = ( /obj/effect/turf_decal/trimline/red/arrow_ccw{ dir = 4 @@ -1828,6 +1699,15 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"vK" = ( +/obj/machinery/optable, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "vN" = ( /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/barracks) @@ -1835,9 +1715,27 @@ /obj/machinery/telecomms/server/presets/delta, /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"vX" = ( -/obj/structure/largecrate/supply/supplies, -/turf/open/floor/plating/ground/concrete, +"vQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/prop/mainship/prop_sominf{ + dir = 8 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) +"vR" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 10 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) +"vX" = ( +/obj/structure/largecrate/supply/supplies, +/turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) "vZ" = ( /obj/structure/somcas/two/left, @@ -1872,11 +1770,6 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"wi" = ( -/turf/closed/shuttle/dropship2/window{ - dir = 8 - }, -/area/mainship/patrol_base/som) "wo" = ( /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/mainship, @@ -1899,6 +1792,12 @@ "wA" = ( /turf/open/floor/plating/ground/concrete/lines, /area/mainship/patrol_base/som) +"wB" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/health_analyzer, +/obj/item/bodybag/cryobag, +/turf/open/floor/mainship/sterile/corner, +/area/mainship/patrol_base/som/medical) "wC" = ( /obj/machinery/shower{ dir = 8 @@ -1957,42 +1856,26 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"xe" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mainship/green/full, -/area/mainship/patrol_base/som/prep) +"xf" = ( +/obj/structure/prop/mainship/doorblocker/patrol_base/som, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "xg" = ( /turf/open/floor/mainship/red/corner{ dir = 8 }, /area/mainship/patrol_base/som) -"xi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) +"xj" = ( +/obj/effect/landmark/campaign/mech_spawner/som, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, +/obj/machinery/light, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "xk" = ( /turf/open/floor/mainship/green{ dir = 10 }, /area/mainship/patrol_base/som/barracks) -"xl" = ( -/obj/effect/landmark/campaign/mech_spawner/som/light, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"xm" = ( -/turf/open/floor/mainship/cargo/arrow{ - dir = 8 - }, -/area/mainship/patrol_base/som) "xs" = ( /obj/machinery/light{ dir = 1 @@ -2010,18 +1893,21 @@ }, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/barracks) -"xK" = ( -/obj/effect/turf_decal/warning_stripes/box, -/obj/effect/turf_decal/trimline/blue/line{ +"xM" = ( +/obj/effect/turf_decal/trimline/blue/corner{ dir = 8 }, /turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som/prep) +/area/mainship/patrol_base/som) "xO" = ( /turf/closed/shuttle/dropship_regular/interior_corner{ dir = 1 }, /area/mainship/patrol_base/som/hanger) +"xQ" = ( +/obj/machinery/light, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "xR" = ( /obj/machinery/door/firedoor/mainship, /turf/open/floor/prison/arrow/clean{ @@ -2044,15 +1930,6 @@ /obj/effect/turf_decal/warning_stripes, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) -"xZ" = ( -/obj/structure/stairs/seamless{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "yb" = ( /obj/effect/landmark/start/job/som/staff_officer, /turf/open/floor/mainship/red{ @@ -2060,14 +1937,13 @@ }, /area/mainship/patrol_base/som) "ye" = ( -/turf/open/floor/mainship/red, -/area/mainship/patrol_base/som/prep) -"yg" = ( /obj/machinery/light{ - dir = 4 + dir = 1 }, -/turf/open/floor/mainship/green/full, -/area/mainship/patrol_base/som/prep) +/obj/effect/landmark/reward_spawn_location/som, +/obj/structure/closet/crate, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "yh" = ( /obj/structure/window/framed/mainship/escapeshuttle, /turf/open/floor/mainship/mono, @@ -2076,16 +1952,10 @@ /obj/effect/spawner/random/misc/soap/deluxeweighted, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) -"yq" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som) -"ys" = ( -/obj/structure/prop/mainship/prop_sominf, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +"yr" = ( +/obj/machinery/door/airlock/mainship/medical/free_access, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "yw" = ( /obj/structure/stairs/seamless{ dir = 1 @@ -2100,10 +1970,6 @@ dir = 1 }, /area/mainship/patrol_base/som/hanger) -"yz" = ( -/obj/structure/table/mainship, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) "yD" = ( /turf/open/floor/mainship/red/corner, /area/mainship/patrol_base/som) @@ -2113,20 +1979,6 @@ }, /turf/open/floor/mainship/som, /area/mainship/patrol_base/som) -"yG" = ( -/obj/effect/turf_decal/trimline/blue/arrow_cw{ - dir = 9 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"yP" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/red{ - dir = 1 - }, -/area/mainship/patrol_base/som/prep) "yY" = ( /turf/closed/mineral/smooth/indestructible, /area/mainship/patrol_base/som/barracks) @@ -2138,13 +1990,6 @@ /obj/structure/prop/vehicle/truck, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"zj" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/vending/tool, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "zk" = ( /obj/machinery/telecomms/server/presets/charlie, /turf/open/floor/mainship, @@ -2182,11 +2027,6 @@ dir = 1 }, /area/mainship/patrol_base/som) -"zE" = ( -/turf/open/floor/mainship_hull/dir{ - dir = 4 - }, -/area/mainship/patrol_base/som) "zF" = ( /obj/structure/reagent_dispensers/fueltank/barrel, /obj/machinery/light{ @@ -2196,16 +2036,25 @@ dir = 5 }, /area/mainship/patrol_base/som/hanger) +"zH" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "zI" = ( /turf/open/floor/mainship/mono, /area/mainship/patrol_base/som/hanger) -"zM" = ( -/obj/structure/prop/mainship/prop_sominf{ - dir = 8 +"zN" = ( +/obj/structure/table/reinforced, +/obj/item/storage/surgical_tray, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/mainship/sterile/corner{ + dir = 4 }, -/obj/machinery/light, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "zO" = ( /obj/machinery/light{ dir = 8 @@ -2235,16 +2084,9 @@ /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) "zV" = ( -/obj/effect/landmark/campaign/mech_spawner/som, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"Ab" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/green/full, -/area/mainship/patrol_base/som/prep) +/obj/structure/window/framed/prison/reinforced/nonshutter_hull, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "Ac" = ( /turf/open/floor/mainship/white/corner{ dir = 4 @@ -2258,10 +2100,6 @@ dir = 4 }, /area/mainship/patrol_base/som/barracks) -"Ai" = ( -/obj/vehicle/ridden/powerloader, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "Ap" = ( /turf/closed/wall/r_wall/unmeltable, /area/mainship/patrol_base/som) @@ -2293,6 +2131,10 @@ }, /turf/open/floor/mainship/floor, /area/mainship/patrol_base/som) +"AC" = ( +/obj/machinery/door/airlock/multi_tile/mainship/blackgeneric, +/turf/open/floor/mainship/office, +/area/mainship/patrol_base/som/command) "AE" = ( /obj/structure/window/framed/prison/reinforced/nonshutter_hull, /turf/open/floor/plating/ground/concrete, @@ -2322,44 +2164,19 @@ dir = 5 }, /area/mainship/patrol_base/som/hanger) -"AV" = ( -/obj/structure/barricade/guardrail{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/prop/mainship/generator/tesla_coil, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) -"Bd" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mainship/orange/full, -/area/mainship/patrol_base/som/prep) -"Bf" = ( -/obj/effect/turf_decal/trimline/blue/arrow_cw{ - dir = 8 - }, -/turf/open/floor/mainship/white/corner, -/area/mainship/patrol_base/som) "Bg" = ( /obj/structure/somcas/five/left, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) -"Bn" = ( -/obj/structure/lattice, -/obj/structure/monorail{ - dir = 9 - }, -/obj/structure/monorail{ - dir = 5 - }, -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 +"Bj" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) +"Bl" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 }, -/turf/open/shuttle/escapepod/plain, +/turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) "Bo" = ( /obj/effect/landmark/start/job/som/squadleader, @@ -2384,14 +2201,23 @@ }, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) +"Bx" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/storage/box/gloves{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/storage/box/masks, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "BA" = ( /obj/machinery/light/mainship, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) -"BB" = ( -/obj/item/shard, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "BC" = ( /obj/effect/turf_decal/siding, /turf/open/floor/mainship/som/s, @@ -2402,52 +2228,25 @@ }, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) -"BG" = ( -/obj/structure/table/mainship/nometal, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som/prep) "BH" = ( /obj/structure/reagent_dispensers/fueltank/barrel, /obj/machinery/light, /turf/open/floor/mainship/red, /area/mainship/patrol_base/som) -"BX" = ( -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 +"BM" = ( +/obj/effect/landmark/campaign/mech_spawner/som/light, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, +/obj/machinery/light{ + dir = 1 }, -/obj/structure/prop/vehicle/som_mech, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "Ch" = ( /obj/structure/prop/mainship/som_scientist{ dir = 4 }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"Ci" = ( -/obj/structure/dropship_piece/two/front/right, -/turf/open/floor/mainship_hull/dir{ - dir = 4 - }, -/area/mainship/patrol_base/som) -"Cj" = ( -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som) "Cl" = ( /obj/structure/platform/metalplatform{ dir = 1 @@ -2470,26 +2269,6 @@ "Cw" = ( /turf/open/floor/tile/dark, /area/mainship/patrol_base/som) -"CH" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) -"CJ" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/blue/full, -/area/mainship/patrol_base/som/prep) -"CK" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/mainship/red{ - dir = 4 - }, -/area/mainship/patrol_base/som/prep) "CO" = ( /obj/structure/somcas/six/left{ dir = 1 @@ -2520,6 +2299,10 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"Dd" = ( +/obj/machinery/vending/mech_vendor, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "Df" = ( /obj/structure/platform_decoration{ dir = 8 @@ -2575,27 +2358,35 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) +"Ds" = ( +/obj/structure/table/mainship/nometal, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "Dw" = ( /obj/structure/stairs/seamless/platform, /turf/open/floor/mainship/white{ dir = 8 }, /area/mainship/patrol_base/som/hanger) -"Dx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) -"DA" = ( -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 - }, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "DB" = ( /obj/structure/somcas/three/left{ dir = 4 @@ -2608,10 +2399,6 @@ dir = 1 }, /area/mainship/patrol_base/som/command) -"DG" = ( -/obj/machinery/door/poddoor/two_tile_hor/teleporter, -/turf/open/floor/mainship/floor, -/area/mainship/patrol_base/som) "DH" = ( /obj/structure/prop/mainship/mapping_computer, /turf/open/floor/mainship_hull, @@ -2621,18 +2408,6 @@ dir = 8 }, /area/mainship/patrol_base/som/command) -"DP" = ( -/obj/structure/barricade/guardrail{ - dir = 1 - }, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) -"DS" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) "DZ" = ( /obj/structure/platform{ dir = 5 @@ -2654,12 +2429,25 @@ }, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) -"Ej" = ( -/obj/structure/dropship_piece/two/front/left, -/turf/open/floor/mainship_hull/dir{ - dir = 8 +"Ek" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/mainship/sterile/corner{ + dir = 1 }, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) +"Eo" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/item/storage/box/gloves{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/machinery/light, +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) "Eq" = ( /obj/effect/decal/cleanable/blood/oil/armorblood{ dir = 8 @@ -2672,12 +2460,6 @@ }, /turf/open/floor/mainship/som, /area/mainship/patrol_base/som/barracks) -"Et" = ( -/obj/effect/turf_decal/trimline/blue/arrow_cw{ - dir = 9 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "Ev" = ( /obj/machinery/cic_maptable/som_maptable{ dir = 4 @@ -2701,42 +2483,35 @@ }, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/command) -"EJ" = ( -/obj/effect/turf_decal/trimline/blue/arrow_cw{ - dir = 1 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"EM" = ( -/obj/structure/prop/vehicle/som_mech, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "EN" = ( /obj/structure/prop/mainship/prop_sominf{ dir = 8 }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"ER" = ( -/turf/open/floor/mainship/red{ - dir = 4 - }, -/area/mainship/patrol_base/som/prep) "ES" = ( /obj/structure/prop/vehicle/crawler/crawler_fuel{ dir = 1 }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) -"ET" = ( -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "EU" = ( /obj/machinery/door/poddoor/mainship/open{ dir = 2 }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/som/hanger) +"EV" = ( +/obj/structure/stairs/seamless{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/plating/ground/concrete/lines{ + dir = 4 + }, +/area/mainship/patrol_base/som/hanger) "EW" = ( /obj/structure/platform_decoration{ dir = 1 @@ -2760,14 +2535,25 @@ }, /turf/open/floor/mainship/white/full, /area/mainship/patrol_base/som/hanger) -"Fy" = ( -/obj/machinery/door/poddoor/mainship/indestructible, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) +"Fj" = ( +/turf/open/floor/plating/ground/concrete/lines{ + dir = 4 + }, +/area/mainship/patrol_base/som/equipment_bay) +"Fn" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/effect/turf_decal/trimline/red/arrow_ccw{ + dir = 8 + }, +/turf/open/floor/mainship_hull, +/area/mainship/patrol_base/som/hanger) "Fz" = ( /obj/machinery/light, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"FA" = ( +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "FC" = ( /obj/effect/turf_decal/warning_stripes, /obj/structure/hoop{ @@ -2776,18 +2562,6 @@ }, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) -"FD" = ( -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) -"FK" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/orange/full, -/area/mainship/patrol_base/som/prep) "FR" = ( /obj/effect/landmark/start/latejoinsom, /turf/open/floor/mainship/office, @@ -2824,6 +2598,9 @@ "Gk" = ( /turf/closed/shuttle/dropship_regular/top_corner, /area/mainship/patrol_base/som/hanger) +"Gq" = ( +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "Gs" = ( /obj/structure/stairs/seamless{ dir = 4 @@ -2838,13 +2615,12 @@ /turf/open/floor/mainship/mono, /area/mainship/patrol_base/som/hanger) "GH" = ( -/obj/effect/landmark/campaign/mech_spawner/som, -/obj/machinery/light{ - dir = 4 +/obj/structure/table/reinforced, +/obj/item/defibrillator, +/turf/open/floor/mainship/sterile/corner{ + dir = 8 }, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "GJ" = ( /obj/structure/ship_ammo/cas/rocket/napalm, /obj/machinery/light{ @@ -2860,15 +2636,15 @@ }, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/barracks) -"GR" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/oil/armorblood{ - dir = 8 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) +"GM" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/health_analyzer, +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) +"GS" = ( +/obj/machinery/bioprinter, +/turf/open/floor/mainship/sterile/corner, +/area/mainship/patrol_base/som/medical) "GU" = ( /obj/structure/prop/mainship/prop_sominf/heavy{ dir = 8 @@ -2883,19 +2659,6 @@ dir = 1 }, /area/mainship/patrol_base/som/hanger) -"GX" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) -"Hd" = ( -/obj/structure/barricade/guardrail{ - dir = 4 - }, -/obj/structure/prop/mainship/generator/tesla_coil, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "Hg" = ( /obj/structure/largecrate/supply/weapons, /turf/open/floor/plating/ground/concrete, @@ -2904,6 +2667,14 @@ /obj/machinery/computer3/server/rack, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) +"Hw" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/patrol_base/som/medical) "Hx" = ( /obj/machinery/telecomms/bus/preset_four/som, /turf/open/floor/mainship, @@ -2929,19 +2700,6 @@ dir = 1 }, /area/mainship/patrol_base/som/hanger) -"HL" = ( -/obj/structure/lattice, -/obj/structure/monorail{ - dir = 5 - }, -/obj/structure/monorail{ - dir = 9 - }, -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 - }, -/turf/open/shuttle/escapepod/plain, -/area/mainship/patrol_base/som) "HM" = ( /obj/structure/platform, /turf/open/floor/mainship_hull, @@ -2953,11 +2711,6 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som/barracks) -"HQ" = ( -/turf/open/floor/mainship_hull/dir{ - dir = 6 - }, -/area/mainship/patrol_base/som) "HR" = ( /obj/machinery/computer/som, /turf/open/floor/mainship/red{ @@ -2970,6 +2723,13 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"HZ" = ( +/obj/effect/turf_decal/trimline/red/arrow_ccw{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "Ib" = ( /obj/effect/turf_decal/warning_stripes, /obj/effect/turf_decal/warning_stripes/thin, @@ -3007,17 +2767,12 @@ dir = 1 }, /area/mainship/patrol_base/som) -"Io" = ( -/turf/closed/shuttle/dropship2/corners{ - dir = 1 - }, -/area/mainship/patrol_base/som) -"Iq" = ( -/obj/effect/turf_decal/trimline/red/arrow_ccw{ - dir = 5 +"Ir" = ( +/obj/machinery/light{ + dir = 4 }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "Iu" = ( /obj/effect/turf_decal/warning_stripes/thick{ dir = 1 @@ -3043,6 +2798,10 @@ /obj/machinery/telecomms/processor/preset_three/som, /turf/open/floor/mainship, /area/mainship/patrol_base/som) +"IQ" = ( +/obj/machinery/autodoc, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "IX" = ( /obj/structure/stairs/seamless/edge_vert{ dir = 1 @@ -3079,29 +2838,19 @@ }, /turf/open/floor/mainship/floor, /area/mainship/patrol_base/som) -"Jx" = ( -/turf/open/floor/mainship/green{ - dir = 4 - }, -/area/mainship/patrol_base/som/barracks) -"Jy" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/mainship/red, -/area/mainship/patrol_base/som/prep) -"JA" = ( -/obj/effect/turf_decal/trimline/blue/arrow_cw{ +"Jm" = ( +/obj/effect/turf_decal/trimline/blue/line{ dir = 8 }, /turf/open/floor/mainship/red/corner{ dir = 4 }, -/area/mainship/patrol_base/som/prep) -"JB" = ( -/obj/effect/turf_decal/trimline/blue/arrow_cw{ - dir = 1 +/area/mainship/patrol_base/som) +"Jx" = ( +/turf/open/floor/mainship/green{ + dir = 4 }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) +/area/mainship/patrol_base/som/barracks) "JC" = ( /obj/structure/stairs/seamless/platform{ dir = 1 @@ -3111,12 +2860,6 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som/hanger) -"JD" = ( -/obj/effect/turf_decal/trimline/red/line{ - dir = 1 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "JG" = ( /turf/open/floor/mainship/white/corner, /area/mainship/patrol_base/som) @@ -3134,10 +2877,11 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) -"JZ" = ( -/turf/closed/shuttle/dropship2/window{ - dir = 1 +"JV" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 10 }, +/turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) "Kc" = ( /obj/effect/turf_decal/siding{ @@ -3149,11 +2893,6 @@ /obj/effect/turf_decal/warning_stripes/thick/corner, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"Km" = ( -/obj/effect/landmark/campaign/mech_spawner/som/heavy, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "Ko" = ( /obj/structure/largecrate, /turf/open/floor/plating/ground/concrete, @@ -3179,10 +2918,6 @@ "KD" = ( /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"KE" = ( -/obj/structure/barricade/guardrail, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "KG" = ( /obj/structure/prop/mainship/prop_sominf/lorica, /obj/machinery/light{ @@ -3192,20 +2927,10 @@ dir = 9 }, /area/mainship/patrol_base/som) -"KH" = ( -/turf/closed/shuttle/dropship2/corners, -/area/mainship/patrol_base/som) "KJ" = ( /obj/structure/somcas/three/left, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) -"KM" = ( -/obj/structure/stairs/seamless, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) "KV" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -3247,12 +2972,12 @@ /obj/machinery/telecomms/server/presets/command/som, /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"Lz" = ( -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 +"LB" = ( +/obj/machinery/autodoc, +/turf/open/floor/mainship/sterile/side{ + dir = 1 }, -/turf/closed/mineral/smooth/darkfrostwall/indestructible, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "LC" = ( /obj/machinery/light/mainship, /obj/structure/mirror{ @@ -3283,6 +3008,12 @@ }, /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"LW" = ( +/obj/machinery/iv_drip, +/turf/open/floor/mainship/sterile/corner{ + dir = 8 + }, +/area/mainship/patrol_base/som/medical) "LY" = ( /obj/structure/patrol_point/som_11, /turf/open/shuttle/elevator/grating, @@ -3305,21 +3036,11 @@ }, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) -"Mp" = ( -/obj/structure/barricade/guardrail{ - dir = 1 - }, -/obj/structure/dropship_piece/two/front, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) -"Mt" = ( -/turf/open/floor/mainship/cargo/arrow{ +"Mm" = ( +/turf/open/floor/mainship/sterile/side{ dir = 4 }, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "Mv" = ( /obj/structure/ship_ammo/cas/heavygun/highvelocity, /turf/open/floor/plating/ground/concrete, @@ -3337,56 +3058,36 @@ }, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) -"Mz" = ( -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 - }, -/turf/open/floor/mainship_hull/dir{ - dir = 8 +"ML" = ( +/turf/open/floor/mainship/sterile/side{ + dir = 1 }, -/area/mainship/patrol_base/som) -"MJ" = ( -/obj/structure/table/mainship/nometal, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/turf/open/floor/mainship/red{ - dir = 9 +/area/mainship/patrol_base/som/medical) +"MM" = ( +/obj/machinery/light, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) +"MP" = ( +/obj/machinery/camera/autoname/mainship/somship{ + dir = 1 }, -/area/mainship/patrol_base/som/prep) +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) "MT" = ( /obj/machinery/keycard_auth, /turf/closed/wall/r_wall/prison_unmeltable, /area/mainship/patrol_base/som) -"MU" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mainship/blue/full, -/area/mainship/patrol_base/som/prep) -"MZ" = ( -/obj/machinery/camera/autoname/mainship/somship{ - dir = 8 +"MX" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) +"Nc" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 }, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som/prep) +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "Nd" = ( /obj/effect/landmark/start/job/som/staff_officer, /turf/open/floor/mainship/red/corner{ @@ -3403,20 +3104,6 @@ dir = 1 }, /area/mainship/patrol_base/som/command) -"Nh" = ( -/turf/closed/shuttle/dropship2/walltwo, -/area/mainship/patrol_base/som) -"Nj" = ( -/obj/effect/turf_decal/trimline/red/arrow_ccw{ - dir = 4 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) -"Nm" = ( -/obj/structure/monorail, -/obj/structure/dropship_piece/two/front, -/turf/open/floor/mainship_hull, -/area/mainship/patrol_base/som) "Nr" = ( /obj/structure/ship_ammo/cas/rocket/napalm, /turf/open/floor/plating/ground/concrete, @@ -3523,11 +3210,6 @@ "Ol" = ( /turf/open/floor/mainship/white, /area/mainship/patrol_base/som/hanger) -"On" = ( -/turf/open/floor/mainship/red/corner{ - dir = 4 - }, -/area/mainship/patrol_base/som/prep) "Or" = ( /obj/structure/prop/mainship/mission_planning_system, /obj/machinery/light{ @@ -3535,12 +3217,6 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"Ot" = ( -/obj/machinery/camera/autoname/mainship/somship{ - dir = 4 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "Ow" = ( /obj/machinery/status_display, /turf/closed/wall/r_wall/prison_unmeltable, @@ -3564,12 +3240,6 @@ dir = 4 }, /area/mainship/patrol_base/som) -"OF" = ( -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 - }, -/turf/open/shuttle/dropship/floor, -/area/mainship/patrol_base/som) "OG" = ( /obj/machinery/computer/camera_advanced/overwatch/som/zulu{ dir = 4 @@ -3578,6 +3248,12 @@ dir = 8 }, /area/mainship/patrol_base/som/command) +"OK" = ( +/obj/structure/closet/crate, +/obj/structure/closet/crate, +/obj/structure/closet/crate, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "OM" = ( /obj/structure/stairs/seamless, /turf/open/floor/plating/ground/concrete/lines, @@ -3592,24 +3268,6 @@ }, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som/hanger) -"OP" = ( -/turf/closed/shuttle/dropship2/wallthree, -/area/mainship/patrol_base/som) -"OQ" = ( -/obj/structure/lattice, -/obj/structure/monorail{ - dir = 5 - }, -/obj/structure/monorail{ - dir = 9 - }, -/obj/structure/dropship_piece/two/front, -/turf/open/shuttle/escapepod/plain, -/area/mainship/patrol_base/som) -"OU" = ( -/obj/machinery/door/airlock/multi_tile/secure2, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/command) "Pf" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/effect/turf_decal/warning_stripes/thin{ @@ -3623,13 +3281,6 @@ "Pj" = ( /turf/closed/mineral/smooth/indestructible, /area/mainship/patrol_base/som/hanger) -"Pl" = ( -/obj/effect/turf_decal/warning_stripes/box, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som/prep) "Pn" = ( /obj/structure/patrol_point/som_14, /turf/open/shuttle/elevator/grating, @@ -3646,78 +3297,50 @@ }, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/command) -"PA" = ( -/obj/machinery/light{ +"Pv" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/rad, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/machinery/camera/autoname/mainship/somship, +/turf/open/floor/mainship/sterile/side{ dir = 1 }, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) -"PF" = ( -/obj/structure/somcas/six/left, -/turf/open/floor/mainship_hull/gray, -/area/mainship/patrol_base/som) -"PG" = ( -/obj/effect/turf_decal/trimline/red/corner{ +/area/mainship/patrol_base/som/medical) +"Pz" = ( +/obj/machinery/light{ dir = 4 }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) -"PH" = ( -/obj/machinery/light, -/turf/open/floor/mainship/red, -/area/mainship/patrol_base/som/prep) -"PK" = ( -/obj/structure/table/mainship/nometal, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/turf/open/floor/mainship/red{ - dir = 1 +/obj/structure/sink{ + dir = 4 }, -/area/mainship/patrol_base/som/prep) -"PL" = ( -/obj/structure/bed/chair/dropship/passenger{ +/obj/machinery/camera/autoname/mainship/somship{ dir = 8 }, -/obj/machinery/light{ +/turf/open/floor/mainship/sterile/side{ dir = 4 }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) -"PM" = ( -/obj/effect/decal/cleanable/blood/oil/armorblood{ +/area/mainship/patrol_base/som/medical) +"PF" = ( +/obj/structure/somcas/six/left, +/turf/open/floor/mainship_hull/gray, +/area/mainship/patrol_base/som) +"PG" = ( +/obj/effect/landmark/reward_spawn_location/som, +/obj/structure/closet/crate, +/obj/effect/turf_decal/warning_stripes/box/empty, +/obj/machinery/camera/autoname/mainship/somship{ dir = 8 }, /turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som/hanger) -"PS" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som/prep) -"PZ" = ( -/obj/structure/bed/chair/nometal{ +/area/mainship/patrol_base/som/equipment_bay) +"PM" = ( +/obj/effect/decal/cleanable/blood/oil/armorblood{ dir = 8 }, -/turf/open/floor/mainship/blue/full, -/area/mainship/patrol_base/som/prep) +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/hanger) "Qg" = ( /obj/structure/stairs/seamless/platform{ dir = 8 @@ -3741,6 +3364,13 @@ dir = 1 }, /area/mainship/patrol_base/som/hanger) +"Qq" = ( +/obj/effect/landmark/start/job/som/staff_officer, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship/red/corner, +/area/mainship/patrol_base/som) "Qr" = ( /obj/machinery/telecomms/processor/preset_one/som, /turf/open/floor/mainship, @@ -3782,13 +3412,6 @@ dir = 9 }, /area/mainship/patrol_base/som) -"Rf" = ( -/obj/structure/barricade/guardrail, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "Rg" = ( /obj/structure/patrol_point/som_12, /turf/open/shuttle/elevator/grating, @@ -3822,13 +3445,17 @@ "Rq" = ( /turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som/hanger) -"Rt" = ( -/obj/structure/barricade/guardrail{ - dir = 8 +"Rs" = ( +/obj/machinery/light{ + dir = 1 }, -/obj/structure/prop/mainship/generator/tesla_coil, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) +/obj/structure/table/reinforced, +/obj/effect/spawner/random/medical/firstaid, +/obj/effect/spawner/random/medical/heal_pack, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "Rz" = ( /obj/machinery/telecomms/server/presets/common, /turf/open/floor/mainship, @@ -3840,6 +3467,12 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) +"RC" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "RI" = ( /obj/structure/somcas/five/left{ dir = 4 @@ -3887,28 +3520,6 @@ /obj/machinery/light, /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/barracks) -"Sq" = ( -/obj/structure/table/mainship/nometal, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/machinery/camera/autoname/mainship/somship{ - dir = 1 - }, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som/prep) "Sr" = ( /obj/structure/platform{ dir = 6 @@ -3918,6 +3529,12 @@ "St" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/mainship/patrol_base/som/hanger) +"Sw" = ( +/obj/structure/morgue{ + dir = 8 + }, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "Sy" = ( /turf/open/floor/mainship/office, /area/mainship/patrol_base/som/command) @@ -3935,13 +3552,6 @@ /obj/effect/turf_decal/warning_stripes/thin, /turf/open/floor/wood, /area/mainship/patrol_base/som/barracks) -"SZ" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som/prep) "Ta" = ( /turf/open/floor/plating/ground/concrete/lines{ dir = 4 @@ -3953,6 +3563,11 @@ dir = 6 }, /area/mainship/patrol_base/som/hanger) +"Th" = ( +/obj/effect/landmark/campaign/mech_spawner/som/heavy, +/obj/effect/turf_decal/warning_stripes/thick/autosmooth, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) "Ti" = ( /obj/structure/somcas/one/left{ dir = 4 @@ -3965,13 +3580,6 @@ }, /turf/open/floor/mainship/green/full, /area/mainship/patrol_base/som) -"Ts" = ( -/obj/structure/monorail, -/obj/machinery/door/poddoor/mainship/indestructible{ - dir = 2 - }, -/turf/open/floor/mainship_hull, -/area/mainship/patrol_base/som) "Ty" = ( /turf/closed/shuttle/dropship_regular/backhatch, /area/mainship/patrol_base/som/hanger) @@ -3996,6 +3604,12 @@ }, /turf/open/floor/freezer, /area/mainship/patrol_base/som/barracks) +"TK" = ( +/obj/machinery/bodyscanner, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/patrol_base/som/medical) "TM" = ( /obj/structure/prop/mainship/hangar_stencil, /turf/open/floor/mainship_hull, @@ -4004,17 +3618,6 @@ /obj/machinery/telecomms/server/presets/whiskey, /turf/open/floor/mainship, /area/mainship/patrol_base/som) -"TO" = ( -/obj/structure/lattice, -/obj/structure/monorail{ - dir = 9 - }, -/obj/structure/monorail{ - dir = 5 - }, -/obj/structure/dropship_piece/two/front, -/turf/open/shuttle/escapepod/plain, -/area/mainship/patrol_base/som) "TP" = ( /obj/structure/largecrate/random/case, /obj/machinery/light{ @@ -4062,6 +3665,10 @@ "Uk" = ( /turf/open/space/basic, /area/space) +"Uq" = ( +/obj/structure/morgue, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "Uw" = ( /turf/open/floor/plating/ground/concrete/lines{ dir = 6 @@ -4076,17 +3683,21 @@ }, /area/mainship/patrol_base/som/hanger) "Uz" = ( -/obj/effect/turf_decal/warning_stripes/box, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som/prep) -"UA" = ( -/obj/structure/monorail, -/obj/structure/lattice, -/obj/structure/monorail{ +/obj/structure/stairs/seamless, +/obj/effect/turf_decal/trimline/red/line{ dir = 4 }, -/turf/open/floor/mainship_hull, +/turf/open/floor/plating/ground/concrete, /area/mainship/patrol_base/som) +"UB" = ( +/obj/structure/morgue{ + dir = 8 + }, +/obj/machinery/camera/autoname/mainship/somship{ + dir = 8 + }, +/turf/open/floor/freezer, +/area/mainship/patrol_base/som/medical) "UE" = ( /obj/machinery/light{ dir = 1 @@ -4123,19 +3734,15 @@ dir = 1 }, /area/mainship/patrol_base/som/hanger) -"Vp" = ( -/obj/structure/dropship_piece/two/corner/rearright{ - dir = 1 - }, -/turf/open/floor/mainship_hull/dir{ - dir = 10 - }, -/area/mainship/patrol_base/som) "Vr" = ( /turf/open/floor/mainship/green{ dir = 8 }, /area/mainship/patrol_base/som/barracks) +"VC" = ( +/obj/machinery/door/airlock/multi_tile/mainship/medidoor, +/turf/open/floor/mainship/sterile/dark, +/area/mainship/patrol_base/som/medical) "VL" = ( /obj/machinery/camera/autoname/mainship/somship{ dir = 8 @@ -4185,16 +3792,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/som/hanger) -"Wc" = ( -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 - }, -/obj/structure/prop/vehicle/som_mech, -/obj/effect/decal/cleanable/blood/oil/armorblood{ - dir = 4 - }, -/turf/open/shuttle/dropship/seven, -/area/mainship/patrol_base/som) "Wd" = ( /turf/open/floor/mainship/white{ dir = 8 @@ -4210,16 +3807,6 @@ }, /turf/open/floor/mainship/som/nw, /area/mainship/patrol_base/som) -"Wh" = ( -/obj/structure/lattice, -/obj/structure/monorail{ - dir = 6 - }, -/obj/structure/monorail{ - dir = 10 - }, -/turf/open/shuttle/escapepod/plain, -/area/mainship/patrol_base/som) "Wj" = ( /obj/machinery/telecomms/receiver/preset_right, /turf/open/floor/mainship, @@ -4245,14 +3832,6 @@ dir = 1 }, /area/mainship/patrol_base/som) -"WI" = ( -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/mainship/red{ - dir = 8 - }, -/area/mainship/patrol_base/som/prep) "WL" = ( /obj/structure/bed/chair/comfy/black, /obj/structure/prop/mainship/prop_so/som, @@ -4266,13 +3845,6 @@ dir = 4 }, /area/mainship/patrol_base/som/command) -"WQ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/prop/mainship/prop_sominf, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "WR" = ( /obj/machinery/telecomms/server/presets/command, /turf/open/floor/mainship, @@ -4299,23 +3871,22 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som) -"Xd" = ( -/obj/structure/barricade/guardrail{ - dir = 8 - }, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) "Xg" = ( /turf/open/floor/mainship/white{ dir = 6 }, /area/mainship/patrol_base/som/hanger) -"Xk" = ( -/obj/structure/stairs/seamless/platform{ - dir = 4 +"Xi" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/effect/spawner/random/medical/bloodpack, +/obj/effect/spawner/random/medical/bloodpack, +/obj/effect/spawner/random/medical/bloodpack, +/turf/open/floor/mainship/sterile/side{ + dir = 1 }, -/turf/open/floor/mainship/office, -/area/mainship/patrol_base/som) +/area/mainship/patrol_base/som/medical) "Xn" = ( /obj/structure/bed/chair/nometal{ dir = 1 @@ -4343,20 +3914,31 @@ }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) +"XI" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/mainship/patrol_base/som/equipment_bay) +"XQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) +"XR" = ( +/obj/structure/stairs/seamless, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som) "XS" = ( /obj/effect/turf_decal/warning_stripes/thick{ dir = 4 }, /turf/open/floor/mainship_hull, /area/mainship/patrol_base/som/hanger) -"XV" = ( -/obj/structure/dropship_piece/two/corner/rearleft{ - dir = 1 - }, -/turf/open/floor/mainship_hull/dir{ - dir = 6 - }, -/area/mainship/patrol_base/som) "XW" = ( /obj/machinery/door/poddoor/mainship/indestructible{ dir = 2 @@ -4369,16 +3951,21 @@ dir = 1 }, /area/mainship/patrol_base/som) -"Yc" = ( -/obj/machinery/light, -/turf/open/floor/tile/dark, -/area/mainship/patrol_base/som) -"Yh" = ( -/obj/machinery/light, -/turf/open/floor/mainship/red{ - dir = 10 +"Ye" = ( +/obj/machinery/vending/mech_vendor, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/ground/concrete, +/area/mainship/patrol_base/som/equipment_bay) +"Yf" = ( +/obj/machinery/camera/autoname/mainship/somship{ + dir = 4 + }, +/turf/open/floor/mainship/sterile/side{ + dir = 8 }, -/area/mainship/patrol_base/som/prep) +/area/mainship/patrol_base/som/medical) "Yk" = ( /obj/machinery/vending/marineFood/som, /obj/item/reagent_containers/food/snacks/protein_pack/som, @@ -4409,29 +3996,12 @@ dir = 4 }, /area/mainship/patrol_base/som/barracks) -"Yl" = ( -/turf/open/floor/mainship/red{ - dir = 6 - }, -/area/mainship/patrol_base/som/prep) "Yo" = ( /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/som) -"Yt" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/som/prep) "Yy" = ( /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som/hanger) -"YA" = ( -/turf/open/floor/mainship_hull/dir{ - dir = 8 - }, -/area/mainship/patrol_base/som) "YN" = ( /obj/structure/patrol_point/som_22, /turf/open/shuttle/elevator/grating, @@ -4441,9 +4011,11 @@ /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/som) "YQ" = ( -/obj/machinery/vending/mech_vendor, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) +/obj/machinery/bodyscanner, +/turf/open/floor/mainship/sterile/corner{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "YS" = ( /obj/structure/punching_bag, /turf/open/floor/plating/ground/concrete, @@ -4454,16 +4026,17 @@ }, /turf/open/floor/mainship/white/full, /area/mainship/patrol_base/som) +"YV" = ( +/obj/machinery/vending/medical, +/turf/open/floor/mainship/sterile/corner{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "YX" = ( /turf/open/floor/mainship/white{ dir = 4 }, /area/mainship/patrol_base/som) -"Zb" = ( -/obj/effect/landmark/campaign/mech_spawner/som/light, -/obj/effect/turf_decal/warning_stripes/thick/autosmooth, -/turf/open/floor/plating/ground/concrete, -/area/mainship/patrol_base/som) "Zf" = ( /obj/machinery/shower{ pixel_y = 15 @@ -4482,6 +4055,12 @@ dir = 6 }, /area/mainship/patrol_base/som) +"Zi" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/som/hanger) "Zs" = ( /obj/structure/ship_ammo/cas/heavygun/highvelocity, /turf/open/floor/mainship_hull/gray, @@ -4502,12 +4081,24 @@ /obj/structure/prop/mainship/prop_tech/som, /turf/open/floor/mainship_hull/gray, /area/mainship/patrol_base/som) +"ZB" = ( +/turf/open/floor/mainship/sterile/side, +/area/mainship/patrol_base/som/medical) "ZD" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/mainship/silver{ dir = 10 }, /area/mainship/patrol_base/som/command) +"ZF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/adv, +/obj/item/storage/firstaid/adv, +/obj/machinery/light, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/patrol_base/som/medical) "ZH" = ( /obj/machinery/light{ dir = 8 @@ -4517,6 +4108,12 @@ dir = 8 }, /area/mainship/patrol_base/som) +"ZI" = ( +/obj/machinery/vending/medical, +/turf/open/floor/mainship/sterile/side{ + dir = 8 + }, +/area/mainship/patrol_base/som/medical) "ZM" = ( /obj/structure/teleporter_array, /turf/open/floor/bcircuit/anim, @@ -7390,10 +6987,10 @@ fX rK zI EU -Iu -ua -ua -Ud +pk +uO +mb +Fn EU zI LY @@ -7514,7 +7111,7 @@ zn GV Iu ua -ua +jX Ud iY ev @@ -7636,7 +7233,7 @@ yy AQ Iu ua -ua +ag Ud dy xO @@ -7758,7 +7355,7 @@ GV hw Iu ua -ua +ag Ud hw iY @@ -7880,7 +7477,7 @@ GV Eq Iu ua -ua +ag Ud Yy iY @@ -8002,7 +7599,7 @@ tQ tQ Av ua -ua +jX fN tQ tQ @@ -8124,7 +7721,7 @@ fY ua ua ua -ua +ag ua ua fY @@ -8246,7 +7843,7 @@ kY dA nM nM -nM +EV nM Uy kY @@ -8368,7 +7965,7 @@ bk bk bk bk -bk +Zi bk bk bk @@ -8737,20 +8334,20 @@ bv bP bv EW -vz -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd +XI +XI +bq +dQ +Ye +OK +OK +Ye +dQ +nS +XI +XI +Uk +Uk Uk Uk Uk @@ -8859,18 +8456,18 @@ tz tz tz LR -vz -vz -vz -vz -vz -vz -vz -vz -vz -Uk -Uk -Uk +XI +pH +MX +FA +FA +FA +FA +FA +FA +MX +oo +XI Uk Uk Uk @@ -8981,18 +8578,18 @@ Aw aL Aw uG -wf -aV -os -Aw -qV -Aw -wf -aV -os -Uk -Uk -Uk +XI +BM +MX +FA +FA +FA +FA +FA +FA +MX +xj +XI Uk Uk Uk @@ -9103,18 +8700,18 @@ Aw Mh Aw Aw -jK -Aw -AE -Aw -Aw -Aw -jK -Aw -vz -Uk -Uk -Uk +XI +iB +MX +FA +MX +Th +Th +MX +FA +MX +oo +XI Uk Uk Uk @@ -9225,18 +8822,18 @@ Aw aL Aw Aw -hT -cO -os -Aw -wL -Aw -hT -cO -os -Uk -Uk -Uk +XI +pH +MX +FA +MX +Th +Th +MX +FA +MX +lN +XI Uk Uk Uk @@ -9347,19 +8944,19 @@ tz tz tz LR -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz +XI +pH +MX +FA +MX +Th +Th +MX +FA +MX +oo +XI +Uk Uk Uk Uk @@ -9466,22 +9063,22 @@ RO Vh Aw Aw -aL +Mh Aw ca -vz -Aw -Aw -Aw -os -Aw -Aw -Ot -Aw -Aw -wf -aV -gW +XI +BM +MX +FA +FA +FA +FA +FA +FA +MX +xj +XI +Uk Uk Uk Uk @@ -9591,19 +9188,19 @@ tz tz tz LR -vz -Aw -Aw -Aw -vz -RU -Aw -Aw -Aw -wL -hT -cO -mr +XI +Dd +FA +FA +FA +Ir +Ir +FA +FA +FA +Dd +XI +Uk Uk Uk Uk @@ -9713,26 +9310,26 @@ Aw aL Aw Jk +XI +XI +Fj +Fj +Fj +XI +XI +Fj +Fj +Fj +XI +vz vz -Aw -Aw -Aw vz vz -cO -pu vz vz vz vz vz -Uk -Uk -Uk -Uk -Uk -Uk -Uk Uk Uk Uk @@ -9800,67 +9397,67 @@ Uk Uk Uk Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -RO -RO -RO -jg -RO -RO -RO -RO -bg vz vz -Vh -Aw -Aw -Mh -Aw -Fz vz vz vz vz vz vz -ik -Xk vz -cd -cd -cd -cd -cd -cd -cd -cd -cd -iC -iC -iC -iC -iC -iC -iC -iC +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +rv +vz +vz +vz +vz +vz +vz +vz +XQ +Aw +Aw +aL +Aw +Aw +Aw +ik +FA +FA +FA +ik +ik +FA +FA +FA +xQ +wf +aV +os +Aw +qV +Aw +wf +aV +os +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -9922,67 +9519,67 @@ Uk Uk Uk Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -RO -Jh -NT -Sy -OG -Ev -vi -RO vz -cp +tB +dW +Hq +vz +St +St +St +St +St +St +St +St +St +St +St +St +vz +vz +QT +zQ +sB +NL +ZH +Dj +vz +mt Aw Aw Aw Aw -aL Aw +HV +HC +Bl +Aw +FA +FA +FA +FA +FA +FA +FA +FA +FA +FA +jK +Aw +AE Aw Aw -BG -gS -kH -Yt -MJ -cl -Yh -gS -iC -iC -iC -iC -iC -iC -yY -cd -cd -iC -rE -YS -rE -As -YS -rE -iC +Aw +jK +Aw +vz +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -10044,33 +9641,35 @@ Uk Uk Uk Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -RO -vB -Sy -Sy -EE -Sy -oV -RO vz +nB +qj +Hq +St +St +Fc +eT +gF +eT +eT +eT +gF +eT +eT +mk +St +St +vz +XX +Ax +xb +pt +xb +xU +vz +Aw +Aw +Aw Aw Aw Aw @@ -10078,33 +9677,31 @@ Aw Aw aL Aw +MX +MX +MX +FA +MX +MX +MX +FA +FA +FA +jK Aw +AE Aw -Uz -la -FK -FK -yP -hX -ye -gS -iC -xF -We -We -lm -iC -iC -cd -cd -iC -UE -rE -rE -rE -rE -jW -iC +Aw +Aw +jK +Aw +vz +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -10166,67 +9763,67 @@ Uk Uk Uk Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -RO -HR -Sy -Sy -Sy -Sy -Va -RO vz -ys +NZ +ao +Hq +St +gF +eT +eT +eT +eT +eT +eT +eT +eT +eT +eT +gF +St +vz +ue +bZ +rC +Wa +qJ +Zg +vz Aw Aw Aw Aw -HV -HC -HC -Nj -Pl -WI -bh -WI +Aw +Aw +Aw +Aw +aL +Aw +uL +uL +uL +Ir uL PG ye -gS -We -FR -FR -FR -FR -We -iC -cd -cd -iC -rE -rE -rE -rE -rE -pR -iC +FA +FA +xQ +hT +cO +os +Aw +wL +tk +hT +cO +os +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -10288,6 +9885,61 @@ Uk Uk Uk Uk +vz +kn +qj +dW +Cr +eT +uN +cS +Dw +sA +sA +sA +pz +cS +eO +eT +eT +St +vz +vz +Jl +Jl +Jl +Jl +vz +vz +Aw +Aw +Aw +Aw +Aw +Aw +Aw +Aw +Mh +Fz +XI +XI +XI +XI +XI +XI +XI +XI +XI +XI +vz +vz +vz +vz +vz +vz +vz +vz +vz Uk Uk Uk @@ -10306,61 +9958,6 @@ Uk Uk Uk Uk -RO -VP -wb -Sy -Ug -Sy -Sy -OU -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Uz -ER -ER -ER -On -JD -ye -jV -We -FR -aM -aM -FR -We -iC -cd -cd -iC -pR -rE -rE -rE -rE -rE -iC -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk Uk Uk Uk @@ -10410,34 +10007,33 @@ vz Uk Uk Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -RO -iT -Sy -Sy -Sy -Sy -Sy -Sy -Aw -Aw +MT +dW +dW +dW +Cr +eT +gT +Ik +eT +eT +eT +eT +eT +lD +Ol +eT +eT +St +vz +KG +Wd +Wd +Wd +Wd +Uj +vz +cp Aw Aw yD @@ -10445,31 +10041,25 @@ oA oA oA ac +aL Aw -Uz -Bd -tf -tf -bF -vd -PH -gS +vz +iC +xF We -Ro -Yk -Yk -wQ We +lm +iC iC cd cd iC +UE +YS rE -rE -rE -rE -rE -rE +As +YS +jW iC Uk Uk @@ -10499,6 +10089,13 @@ Uk Uk Uk Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk "} (50,1,1) = {" Uk @@ -10532,34 +10129,33 @@ vz Uk Uk Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -RO -HR -Sy -Sy -Sy -Sy -Va -RO -vz -WQ +tu +dW +dW +uH +Cr +eT +gT +Cl +wG +wG +wG +wG +wG +eT +mR +eT +eT +UL +bX +zz +xb +xb +xb +xb +bA +gs +Aw Aw Aw xU @@ -10567,31 +10163,25 @@ sx sx sx LF -mt -BG -gS -nQ -nQ -PK -JD -ye -gS +aL +np +vz We -Ro -iC -iC -wQ +FR +FR +FR +FR We iC cd cd iC -HO rE rE rE rE -sH +rE +pR iC Uk Uk @@ -10621,6 +10211,13 @@ Uk Uk Uk Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk "} (51,1,1) = {" Uk @@ -10636,30 +10233,6 @@ Uk Uk Uk Uk -hm -vz -vz -vz -vz -vz -vz -Cw -Cw -Cw -Cw -Cw -yz -nc -vz -Dx -Cw -Cw -Cw -Cw -Yc -vz -ic -cu Uk Uk Uk @@ -10672,43 +10245,60 @@ Uk Uk Uk Uk -RO -vB -Sy -Sy -bl -Sy -oV -RO +Uk +Uk +Uk +Uk +Uk +Uk vz -hi -Aw +Oc +dW +tx +Cr +eT +gT +Cl +wG +wG +wG +wG +wG +eT +hz +eT +eT +Ga +OE +eM +tL +ul +QB +tL +eE +fC +dF +JV Aw xU sx sx sx LF -mt -BG -gS -nQ -nQ -PK -JD -Jy -gS +aL +Aw +vz We -Bo -uJ -uJ -ai +FR +aM +aM +FR We iC cd cd iC -rE +pR rE rE rE @@ -10743,6 +10333,13 @@ Uk Uk Uk Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk "} (52,1,1) = {" Uk @@ -10758,30 +10355,6 @@ Uk Uk Uk Uk -hm -hm -hm -hm -hm -hm -vz -PA -Cw -Cw -Cw -Cw -ho -lo -vz -Cj -Cj -dN -or -or -or -vz -vz -vz Uk Uk Uk @@ -10794,59 +10367,66 @@ Uk Uk Uk Uk -RO -Tz -uA -wu -Ox -dV -cs -RO +Uk +Uk +Uk +Uk +Uk +Uk vz -Aw -Aw +mo +dW +tJ +Cr +eT +gT +Cl +wG +wG +ZM +wG +wG +eT +hz +eT +mk +St +vz +Cn +xb +yE +ba +xb +Of +vz +cp +qc Aw xg sB sB sB ve -Aw -Uz -oD -qB -qB -bF -vd -aH -jV +Mh +df +vz We -Bo -aM -aM -ai +Ro +Yk +Yk +wQ We iC cd -iC -iC +cd iC rE rE rE rE +rE +rE iC -iC -iC -iC -iC -yY -yY -yY -yY -yY -yY -Uk Uk Uk Uk @@ -10865,14 +10445,6 @@ Uk Uk Uk Uk -"} -(53,1,1) = {" -Uk -Uk -Uk -Uk -Uk -Uk Uk Uk Uk @@ -10880,33 +10452,6 @@ Uk Uk Uk Uk -hm -vz -vz -vz -vz -vz -Cj -Cj -xm -xm -xm -ne -Cj -Cj -vz -vz -vz -xm -xm -xm -xm -ty -rR -vz -Uk -Uk -Uk Uk Uk Uk @@ -10916,59 +10461,9 @@ Uk Uk Uk Uk -RO -RO -RO -RO -RO -RO -RO -RO -vz -cp -Aw -Aw -yD -oA -oA -oA -ac -Aw -Uz -cl -cl -cl -dO -JD -ki -gS -We -aM -vN -vN -aM -We -iC -cd -iC -Vr -zO -Vr -Vr -Vr -Vr -Vr -zO -Vr -Vr -Vr -aq -Vr -zO -Vr -xk -yY Uk +"} +(53,1,1) = {" Uk Uk Uk @@ -10987,8 +10482,6 @@ Uk Uk Uk Uk -"} -(54,1,1) = {" Uk Uk Uk @@ -11002,30 +10495,60 @@ Uk Uk Uk Uk -Lz -YA -Mz -YA -Ej -KH -Nh -Nh -ET -ET -ET -Nh -Nh -Nh -Nh -Nh -Nh -Fy -Fy -iQ -iQ -Nh -XV vz +Oc +dW +uH +Cr +eT +gT +Cl +wG +wG +wG +wG +wG +eT +hz +eT +eT +UL +bX +zz +xb +Wf +lY +xb +bA +gs +Aw +xM +vI +mp +ia +ia +th +Jm +vR +Ds +vz +We +Ro +iC +iC +wQ +We +iC +cd +cd +iC +HO +rE +rE +rE +rE +sH +iC Uk Uk Uk @@ -11046,54 +10569,6 @@ Uk Uk Uk Uk -vz -Aw -Aw -Aw -xU -qm -qm -qm -LF -Aw -Uz -ER -ER -ER -On -JD -PH -gS -iC -xs -vN -vN -Sh -iC -iC -iC -iC -UE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -JH -yY -Uk -Uk -Uk -Uk Uk Uk Uk @@ -11110,9 +10585,7 @@ Uk Uk Uk "} -(55,1,1) = {" -Uk -Uk +(54,1,1) = {" Uk Uk Uk @@ -11124,30 +10597,6 @@ Uk Uk Uk Uk -Lz -Wh -HL -Wh -OQ -fZ -GX -DP -ou -BB -ET -KE -AV -Hd -vz -ET -Rf -iV -Wc -iV -EM -Mp -pU -Cw Uk Uk Uk @@ -11168,47 +10617,920 @@ Uk Uk Uk Uk -vz -aZ -yb -ac -xU -qm -qm -qm -LF -Aw -cx -lZ -ew -ew -bF -JD -hX -hh -WU -vN -vN -vN -vN -zS +YU +dW +dW +WL +Cr +eT +gT +Cl +wG +wG +wG +wG +wG +eT +je +eT +eT +Ga +zs +Ac +xb +xb +xb +xb +JG +YX +Aw +Aw +Aw +xU +qm +qm +qm +LF +Nc +qE +vz +We +Bo +uJ +uJ +ai +We +iC +cd +cd +iC +rE +rE +rE +rE +rE +rE +iC +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(55,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Jj +dW +dW +dW +Cr +eT +gT +oK +eT +eT +eT +eT +eT +uK +Ol +eT +eT +St +vz +ur +YX +YX +YX +YX +GU +vz +Qq +yb +ac +xU +qm +qm +qm +LF +oQ +Bj +vz +We +Bo +aM +aM +ai +We +iC +cd +iC +iC +iC +rE +rE +rE +rE +iC +iC +iC +iC +iC +yY +yY +yY +yY +yY +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(56,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +MT +Ch +dW +WZ +Cr +eT +Ga +EC +rT +vH +vH +vH +fS +EC +Xg +eT +eT +St +RO +RO +RO +RO +RO +RO +RO +RO +VO +sL +Dp +xg +sB +sB +sB +ve +HZ +mt +vz +We +aM +vN +vN +aM +We +iC +cd +iC +Vr +zO +Vr +Vr +Vr +Vr +Vr +zO +Vr +Vr +Vr +aq +Vr +zO +Vr +xk +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(57,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +vz +DH +dW +AO +St +nH +eT +eT +eT +eT +eT +eT +eT +eT +eT +eT +nH +St +RO +Jh +NT +Sy +OG +Ev +vi +RO +xU +Aw +ky +yD +oA +oA +oA +ac +Nc +Fz +vz +iC +xs +vN +vN +Sh +iC +iC +iC +iC +UE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +JH +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(58,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +vz +Or +qj +dW +St +St +Fc +eT +nH +eT +eT +eT +nH +eT +eT +mk +St +St +RO +vB +Sy +Sy +EE +Sy +oV +RO +Nd +wa +ve +xU +Xn +Xn +Xn +LF +Nc +Aw +wf +WU +vN +vN +vN +vN +zS xW xW WU rE -KV -KV -KB -KB -KB -KB -jC -KB -KB -KB -KB -qh -im +KV +KV +KB +KB +KB +KB +jC +KB +KB +KB +KB +qh +im +rE +JH +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(59,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +vz +ut +ao +dW +vz +St +St +St +St +St +St +St +St +St +St +St +St +cd +RO +HR +Sy +Sy +Sy +Sy +Va +RO +cp +Aw +Aw +xU +Xn +Xn +Xn +LF +nj +HC +Uz +vv +vN +Kc +KC +vN +vN +SR +SR +vN +rE +BD +KB +BD +yx +yx +yx +Nw +yx +yx +yx +My +KB +SV +rE +JH +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(60,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +vz +cd +cd +RO +VP +wb +Sy +Ug +Sy +Sy +AC +Aw +Aw +Aw +xg +sB +sB +sB +ve +qc +Aw +jK +vN +vN +Es +BC +vN +vN +SR +SR +vN +rE +FC +yx +xY +yx +yx +yx +nO +yx +yx +yx +xY +yx +Ib +rE +JH +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(61,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +RO +iT +Sy +Sy +Sy +Sy +Sy +Sy +Aw +Aw +Aw +yD +oA +oA +oA +ac +xM +vf +XR +GK +vN +nP +ds +vN +vN +SR +SR +vN +rE +BD +Bw +BD +yx +yx +yx +Nw +yx +yx +yx +xc +Bw +SV rE JH yY @@ -11231,8 +11553,15 @@ Uk Uk Uk Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk "} -(56,1,1) = {" +(62,1,1) = {" Uk Uk Uk @@ -11246,30 +11575,6 @@ Uk Uk Uk Uk -Lz -UA -Ts -UA -Nm -JZ -ET -ET -ET -ET -rI -ET -ET -KE -DA -ET -ET -ET -OF -ET -lE -ET -pU -Cw Uk Uk Uk @@ -11281,59 +11586,6 @@ Uk Uk Uk Uk -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -VO -sL -Dp -xg -sB -sB -sB -ve -mt -Sq -gS -nQ -nQ -PK -Iq -FD -KM -vv -vN -Kc -KC -vN -vN -SR -SR -vN -rE -BD -KB -BD -yx -yx -yx -Nw -yx -yx -yx -My -KB -SV -rE -JH -yY Uk Uk Uk @@ -11353,8 +11605,216 @@ Uk Uk Uk Uk -"} -(57,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +RO +HR +Sy +Sy +Sy +Sy +Va +RO +RU +Aw +Aw +xU +To +To +To +LF +Aw +Aw +hT +oy +vN +vN +vN +vN +vN +Ii +Ii +Df +rE +BD +Od +Bw +Bw +Bw +Bw +lA +Bw +Bw +Bw +Bw +Bw +Pf +rE +JH +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(63,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +RO +vB +Sy +Sy +bl +Sy +oV +RO +hi +Aw +Aw +xU +To +To +To +LF +Aw +Fz +vz +iC +xs +vN +vN +Sh +iC +iC +iC +iC +UE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +rE +JH +yY +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(64,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -11368,30 +11828,6 @@ Uk Uk Uk Uk -Lz -er -Bn -er -TO -wi -PL -DP -dZ -ET -ET -KE -Rt -Rt -vz -ET -dS -iV -BX -GR -EM -gK -pU -Cw Uk Uk Uk @@ -11403,59 +11839,6 @@ Uk Uk Uk Uk -vz -YQ -Aw -Zb -xl -es -Zb -xl -Zb -vz -cI -Aw -ky -yD -oA -oA -oA -ac -mt -BG -gS -nQ -nQ -PK -hX -hX -dl -vN -vN -Es -BC -vN -vN -SR -SR -vN -rE -FC -yx -xY -yx -yx -yx -nO -yx -yx -yx -xY -yx -Ib -rE -JH -yY Uk Uk Uk @@ -11472,11 +11855,54 @@ Uk Uk Uk Uk +RO +Tz +uA +wu +Ox +dV +cs +RO +Aw +Aw +Aw +xg +sB +sB +sB +ve +Aw +mt +vz +We +aM +vN +vN +aM +We +iC +cd +iC +Jx +Jx +Ah +Jx +Jx +hD +Jx +Ah +Jx +Jx +Jx +Jx +Jx +Ah +Jx +gI +yY Uk Uk Uk -"} -(58,1,1) = {" Uk Uk Uk @@ -11490,30 +11916,6 @@ Uk Uk Uk Uk -Lz -zE -hk -zE -Ci -Io -OP -OP -ET -ET -bt -OP -OP -OP -OP -OP -OP -Fy -Fy -OP -OP -OP -Vp -vz Uk Uk Uk @@ -11524,60 +11926,9 @@ Uk Uk Uk Uk +"} +(65,1,1) = {" Uk -vz -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Aw -wA -Nd -wa -ve -xU -Xn -Xn -Xn -LF -Aw -Uz -MU -PZ -PZ -bF -Et -PS -mG -GK -vN -nP -ds -vN -vN -SR -SR -vN -rE -BD -Bw -BD -yx -yx -yx -Nw -yx -yx -yx -xc -Bw -SV -rE -JH -yY Uk Uk Uk @@ -11597,8 +11948,6 @@ Uk Uk Uk Uk -"} -(59,1,1) = {" Uk Uk Uk @@ -11612,30 +11961,6 @@ Uk Uk Uk Uk -hm -vz -vz -vz -vz -Cj -Cj -Cj -Mt -Mt -Mt -ne -Cj -yq -Cj -vz -vz -Mt -nF -vz -vz -mB -HQ -vz Uk Uk Uk @@ -11647,58 +11972,55 @@ Uk Uk Uk Uk -vz -rG -Aw -Aw -Aw +fj +fj +fj +fj +fj +RO +RO +RO +RO +RO +RO +RO +RO +cp Aw Aw Aw Aw -wA Aw Aw Aw -xU -Xn -Xn -Xn -LF Aw -Uz -cl -cl -cl -dO -CH -hX -uz -oy -vN -vN -vN -vN -vN -Ii -Ii -Df -rE -BD -Od -Bw -Bw -Bw -Bw -lA -Bw -Bw -Bw -Bw -Bw -Pf -rE -JH +Bj +vz +We +Bo +aM +aM +ai +We +iC +cd +iC +iC +iC +iC +xR +nU +iC +iC +iC +iC +iC +iC +iC +iC +yY +yY +yY yY Uk Uk @@ -11719,48 +12041,6 @@ Uk Uk Uk Uk -"} -(60,1,1) = {" -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -Uk -hm -hm -hm -hm -vz -vz -vj -vz -PA -Cw -Cw -Cw -Xd -vz -vz -vz -Cj -gM -au -Cj -vz -vz -vz -vz -Uk -Uk -Uk Uk Uk Uk @@ -11768,60 +12048,9 @@ Uk Uk Uk Uk +"} +(66,1,1) = {" Uk -vz -pN -Aw -Aw -Aw -Aw -Aw -Aw -Aw -wA -Aw -Aw -Aw -xg -sB -sB -sB -ve -Aw -Uz -ER -ER -ER -On -CH -PH -gS -iC -xs -vN -vN -Sh -iC -iC -iC -iC -UE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -rE -JH -yY Uk Uk Uk @@ -11841,8 +12070,6 @@ Uk Uk Uk Uk -"} -(61,1,1) = {" Uk Uk Uk @@ -11856,30 +12083,6 @@ Uk Uk Uk Uk -hm -hm -hm -hm -vz -Yo -af -vz -Cw -Cw -Cw -Cw -Cw -xi -DS -Cw -Cw -Cw -Cw -Cw -Cw -DS -Cw -Cw Uk Uk Uk @@ -11891,59 +12094,48 @@ Uk Uk Uk Uk -vz +fj +YV +ZI +pF +fj YQ +Hw +TK +Yf +pS +oX +GH +zV Aw Aw -Km -Km -Km Aw -Fz -vz -cp Aw Aw -yD -oA -oA -oA -ac Aw -Uz -cG -CJ -CJ -bF -CH -ki -gS +Aw +Aw +Aw +qE +vz We -aM -vN -vN -aM +Bo +uJ +uJ +ai We iC cd iC -Jx -Jx -Ah -Jx -Jx -hD -Jx -Ah -Jx -Jx -Jx -Jx -Jx -Ah -Jx -gI -yY +eI +wU +wU +wU +wU +wU +wU +qA +iC Uk Uk Uk @@ -11963,8 +12155,6 @@ Uk Uk Uk Uk -"} -(62,1,1) = {" Uk Uk Uk @@ -11980,6 +12170,8 @@ Uk Uk Uk Uk +"} +(67,1,1) = {" Uk Uk Uk @@ -12013,59 +12205,59 @@ Uk Uk Uk Uk -vz -YQ +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +fj +ML +iJ +ZB +fj +mL +iJ +nk +iJ +iJ +iJ +ZB +VC Aw Aw -Km -Km -Km Aw -Fz -vz -cp Aw Aw -xU -To -To -To -LF -mt -BG -gS -nQ -nQ -PK -JB -aH -jV -We -Bo -aM -aM -ai +Aw +Aw +Aw +Aw +Ds +vz We -iC -cd -iC -iC -iC -iC -xR -nU -iC -iC -iC +Ro iC iC +wQ +We iC +cd iC +Eh +Xs +TU +wU +wU +TU +Xs +zy iC -yY -yY -yY -yY Uk Uk Uk @@ -12085,8 +12277,6 @@ Uk Uk Uk Uk -"} -(63,1,1) = {" Uk Uk Uk @@ -12102,6 +12292,8 @@ Uk Uk Uk Uk +"} +(68,1,1) = {" Uk Uk Uk @@ -12135,50 +12327,58 @@ Uk Uk Uk Uk -vz -pN -Aw +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +fj +ah +iJ +ZB +xf +ML +iJ +iJ +iJ +iJ +iJ +ZB +iJ Aw Aw Aw Aw Aw Aw -wA Aw Aw Aw -xU -To -To -To -LF -mt -BG -gS -nQ -nQ -uh -CH -Jy -gS +hE +vz We -Bo -uJ -uJ -ai +Ro +Yk +Yk +wQ We iC cd iC -eI -wU -wU -wU -wU +iC +iC +Ow wU wU -qA +iC +iC +iC iC Uk Uk @@ -12207,8 +12407,6 @@ Uk Uk Uk Uk -"} -(64,1,1) = {" Uk Uk Uk @@ -12216,6 +12414,8 @@ Uk Uk Uk Uk +"} +(69,1,1) = {" Uk Uk Uk @@ -12257,50 +12457,50 @@ Uk Uk Uk Uk -vz -zj -Aw -Aw -Aw +Uk +Uk +Uk +fj +Pv +iJ +ZB +zV +ML +iJ +iJ +iJ +iJ +iJ +ZB +zV +cp Aw Aw Aw Aw -wA Aw Aw Aw -xg -sB -sB -sB -ve Aw -Uz -xe -gk -gk -bF -CH -ye -gS +Fz +vz We -Ro -iC -iC -wQ +FR +aM +aM +FR We iC cd iC -Eh -Xs -TU +eI wU +TF +yo wU -TU -Xs -zy +TF +wU +qA iC Uk Uk @@ -12329,8 +12529,6 @@ Uk Uk Uk Uk -"} -(65,1,1) = {" Uk Uk Uk @@ -12338,6 +12536,11 @@ Uk Uk Uk Uk +"} +(70,1,1) = {" +Uk +Uk +Uk Uk Uk Uk @@ -12379,50 +12582,47 @@ Uk Uk Uk Uk +fj +Xi +iJ +ZB +zV +ML +iJ +iJ +iJ +iJ +iJ +GM +fj vz -Ai -Aw -Aw -Aw -Aw -Aw -Aw -Aw -wA -Aw -Aw -Aw -Aw +vz +vQ Aw Aw Aw Aw Aw -Uz -cl -cl -cl -dO -CH -PH -gS +EN +vz +vz We -Ro -Yk -Yk -wQ +FR +FR +FR +FR We iC cd iC -iC -iC -Ow +Eh +Xs wU wU -iC -iC -iC +wU +wU +Xs +zy iC Uk Uk @@ -12451,8 +12651,6 @@ Uk Uk Uk Uk -"} -(66,1,1) = {" Uk Uk Uk @@ -12460,6 +12658,10 @@ Uk Uk Uk Uk +"} +(71,1,1) = {" +Uk +Uk Uk Uk Uk @@ -12501,50 +12703,48 @@ Uk Uk Uk Uk +Uk +fj +ZF +iJ +ZB +fj +zH +fc +fo +iJ +iJ +iJ +kt +fj +cd +ny vz -YQ -Aw -zV -GH -pS -zV -GH -zV +LU +tz +tz +tz +LR vz -cp -Aw -Aw -Aw -Aw -yG -vf -vf -vI -xK -CK -CK -CK -JA -is -ye -jV +cd +ny +iC +xF We -FR -aM -aM -FR We +lm +iC iC cd iC -eI -wU -TF -yo -wU -TF -wU -qA +iC +iC +iC +ib +BA +iC +iC +iC iC Uk Uk @@ -12573,8 +12773,6 @@ Uk Uk Uk Uk -"} -(67,1,1) = {" Uk Uk Uk @@ -12582,6 +12780,8 @@ Uk Uk Uk Uk +"} +(72,1,1) = {" Uk Uk Uk @@ -12623,50 +12823,50 @@ Uk Uk Uk Uk +Uk +Uk +Uk +fj +Bx +iJ +ZB +fj +fj +fj +fj +Rs +iJ +iJ +jH +fj +cd +cd vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -hi -Aw -Aw -Aw -Aw -ie +aV Aw Aw Aw -Uz -yg -Ab -Ab -bF -tc -Yl -gS -We -FR -FR -FR -FR -We +uG +vz +cd +ny +iC iC +iC +iC +iC +iC +yY cd iC -Eh -Xs +Zf +jz wU wU wU wU -Xs -zy +wU +jz iC Uk Uk @@ -12695,8 +12895,19 @@ Uk Uk Uk Uk -"} -(68,1,1) = {" +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(73,1,1) = {" +Uk +Uk +Uk +Uk Uk Uk Uk @@ -12737,6 +12948,28 @@ Uk Uk Uk Uk +fj +kC +kJ +sT +fj +LB +RC +IQ +iJ +iJ +iJ +sq +fj +cd +cd +vz +oc +oc +oc +oc +oc +vz Uk Uk Uk @@ -12747,49 +12980,23 @@ Uk Uk Uk Uk +iC +Zf +wU +wU +wU +wU +wU +wU +wU +iC +Uk Uk Uk Uk Uk Uk Uk -iJ -vz -Aw -Aw -Aw -Aw -Aw -ie -Aw -Aw -Aw -BG -gS -MZ -SZ -qg -Yl -gS -gS -iC -xF -We -We -lm -iC -iC -cd -iC -iC -iC -iC -ib -BA -iC -iC -iC -iC Uk Uk Uk @@ -12818,7 +13025,7 @@ Uk Uk Uk "} -(69,1,1) = {" +(74,1,1) = {" Uk Uk Uk @@ -12863,6 +13070,26 @@ Uk Uk Uk Uk +fj +fj +fj +fj +fj +iZ +iJ +fl +iJ +iJ +iJ +ZB +fj +Uk +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -12875,42 +13102,15 @@ Uk Uk Uk Uk -vz -vz -cp -Aw -EN -Aw -Aw -ie -Aw -Aw -zM -gS -gS -gS -gS -gS -gS -gS -ss -iC -iC -iC -iC -iC -iC -yY -cd iC Zf -jz +wU +yo wU wU wU wU wU -jz iC Uk Uk @@ -12939,8 +13139,15 @@ Uk Uk Uk Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk "} -(70,1,1) = {" +(75,1,1) = {" Uk Uk Uk @@ -12972,68 +13179,6 @@ Uk Uk Uk Uk -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -rv -vz -vz -vz -vz -vz -vz -vz -cp -Aw -Aw -EJ -Aw -Fz -vz -vz -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -iC -Zf -wU -wU -wU -wU -wU -wU -wU -iC Uk Uk Uk @@ -13051,6 +13196,15 @@ Uk Uk Uk Uk +fj +ML +iJ +iJ +iJ +iJ +iJ +MP +fj Uk Uk Uk @@ -13061,8 +13215,6 @@ Uk Uk Uk Uk -"} -(71,1,1) = {" Uk Uk Uk @@ -13072,6 +13224,16 @@ Uk Uk Uk Uk +iC +Zf +wU +wU +wU +LC +iC +RS +pT +iC Uk Uk Uk @@ -13094,68 +13256,25 @@ Uk Uk Uk Uk -vz -tB -dW -Hq -vz -St -St -St -St -St -St -St -St -St -St -St -St -vz -vz -QT -zQ -sB -NL -ZH -Dj -vz -cd -cd -vz -LU -tz -tz -xZ -tz -LR -vz -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -iC -Zf -wU -yo -wU -wU -wU -wU -wU -iC +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +"} +(76,1,1) = {" +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -13183,8 +13302,6 @@ Uk Uk Uk Uk -"} -(72,1,1) = {" Uk Uk Uk @@ -13201,6 +13318,19 @@ Uk Uk Uk Uk +fj +wB +Mm +Mm +Mm +uc +Mm +fM +fj +Uk +Uk +Uk +Uk Uk Uk Uk @@ -13216,68 +13346,23 @@ Uk Uk Uk Uk -vz -nB -qj -Hq -St -St -Fc -eT -gF -eT -eT -eT -gF -eT -eT -mk -St -St -vz -XX -Ax -xb -pt -xb -xU -vz -cd -cd -vz -aV -Aw -Aw -ie -Aw -uG -vz -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd iC -Zf -wU -wU -wU -LC +eh +ey +ey +ey +wC +iC iC -RS -pT iC +iC +Uk +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -13306,7 +13391,7 @@ Uk Uk Uk "} -(73,1,1) = {" +(77,1,1) = {" Uk Uk Uk @@ -13338,68 +13423,6 @@ Uk Uk Uk Uk -vz -NZ -ao -Hq -St -gF -eT -eT -eT -eT -eT -eT -eT -eT -eT -eT -gF -St -vz -ue -bZ -rC -Wa -qJ -Zg -vz -cd -cd -vz -Aw -Aw -Aw -ie -Aw -Aw -vz -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -iC -eh -ey -ey -ey -wC -iC -iC -iC -iC Uk Uk Uk @@ -13414,6 +13437,18 @@ Uk Uk Uk Uk +fj +fj +fj +fj +fj +yr +fj +fj +fj +cZ +fj +fj Uk Uk Uk @@ -13427,14 +13462,19 @@ Uk Uk Uk Uk -"} -(74,1,1) = {" Uk Uk Uk Uk Uk Uk +iC +iC +iC +iC +iC +iC +iC Uk Uk Uk @@ -13460,65 +13500,7 @@ Uk Uk Uk Uk -vz -kn -qj -dW -Cr -eT -uN -cS -Dw -sA -sA -sA -pz -cS -eO -eT -eT -St -vz -vz -Jl -Jl -Jl -Jl -vz -vz -cd -vz -vz -hi -Aw -Aw -ie -Aw -Aw -vz Uk -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -cd -iC -iC -iC -iC -iC -iC -iC Uk Uk Uk @@ -13530,6 +13512,8 @@ Uk Uk Uk Uk +"} +(78,1,1) = {" Uk Uk Uk @@ -13549,8 +13533,6 @@ Uk Uk Uk Uk -"} -(75,1,1) = {" Uk Uk Uk @@ -13577,47 +13559,33 @@ Uk Uk Uk Uk +fj +Uq +Uq +Uq +Uq +Gq +ox +fj +Ek +av +LW +fj +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk Uk Uk -MT -dW -dW -dW -Cr -eT -gT -Ik -eT -eT -eT -eT -eT -lD -Ol -eT -eT -St -vz -KG -Wd -Wd -Wd -Wd -Uj -vz -vz -vz -RU -Aw -Aw -Aw -EJ -Aw -Fz -vz Uk Uk Uk @@ -13666,13 +13634,13 @@ Uk Uk Uk Uk +"} +(79,1,1) = {" Uk Uk Uk Uk Uk -"} -(76,1,1) = {" Uk Uk Uk @@ -13704,42 +13672,6 @@ Uk Uk Uk Uk -tu -dW -dW -uH -Cr -eT -gT -Cl -wG -wG -wG -wG -wG -eT -mR -eT -eT -UL -bX -zz -xb -xb -xb -xb -bA -bX -DG -Aw -Aw -Aw -Aw -Aw -ie -Aw -Aw -vz Uk Uk Uk @@ -13749,6 +13681,18 @@ Uk Uk Uk Uk +fj +mW +Gq +Gq +Gq +Gq +gA +fj +vK +iJ +Eo +fj Uk Uk Uk @@ -13793,8 +13737,6 @@ Uk Uk Uk Uk -"} -(77,1,1) = {" Uk Uk Uk @@ -13814,6 +13756,8 @@ Uk Uk Uk Uk +"} +(80,1,1) = {" Uk Uk Uk @@ -13826,42 +13770,6 @@ Uk Uk Uk Uk -vz -Oc -dW -tx -Cr -eT -gT -Cl -wG -wG -wG -wG -wG -eT -hz -eT -eT -Ga -OE -eM -tL -ul -QB -tL -Bf -zs -tL -vf -vf -vI -vf -vf -uV -Aw -Aw -vz Uk Uk Uk @@ -13895,6 +13803,18 @@ Uk Uk Uk Uk +fj +Sw +Sw +Sw +Sw +Gq +Gq +fj +GS +Pz +zN +fj Uk Uk Uk @@ -13915,8 +13835,6 @@ Uk Uk Uk Uk -"} -(78,1,1) = {" Uk Uk Uk @@ -13948,42 +13866,6 @@ Uk Uk Uk Uk -vz -mo -dW -tJ -Cr -eT -gT -Cl -wG -wG -ZM -wG -wG -eT -hz -eT -mk -St -vz -Cn -xb -yE -ba -xb -Of -vz -vz -dK -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -13996,6 +13878,8 @@ Uk Uk Uk Uk +"} +(81,1,1) = {" Uk Uk Uk @@ -14037,12 +13921,22 @@ Uk Uk Uk Uk -"} -(79,1,1) = {" Uk Uk Uk Uk +fj +Uq +Uq +Uq +Uq +ox +Gq +fj +fj +fj +fj +fj Uk Uk Uk @@ -14070,42 +13964,6 @@ Uk Uk Uk Uk -vz -Oc -dW -uH -Cr -eT -gT -Cl -wG -wG -wG -wG -wG -eT -hz -eT -eT -UL -bX -zz -xb -Wf -lY -xb -bA -bX -DG -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -14142,6 +14000,8 @@ Uk Uk Uk Uk +"} +(82,1,1) = {" Uk Uk Uk @@ -14159,8 +14019,6 @@ Uk Uk Uk Uk -"} -(80,1,1) = {" Uk Uk Uk @@ -14189,45 +14047,28 @@ Uk Uk Uk Uk +fj +mW +Gq +Gq +Gq +Gq +MM +fj +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk -YU -dW -dW -WL -Cr -eT -gT -Cl -wG -wG -wG -wG -wG -eT -je -eT -eT -Ga -zs -Ac -xb -xb -xb -xb -JG -zs -xb -Aw -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -14282,7 +14123,7 @@ Uk Uk Uk "} -(81,1,1) = {" +(83,1,1) = {" Uk Uk Uk @@ -14314,42 +14155,6 @@ Uk Uk Uk Uk -Jj -dW -dW -dW -Cr -eT -gT -oK -eT -eT -eT -eT -eT -uK -Ol -eT -eT -St -vz -ur -YX -YX -YX -YX -GU -vz -vz -vz -RU -Aw -Aw -Aw -Aw -Aw -Fz -vz Uk Uk Uk @@ -14364,6 +14169,26 @@ Uk Uk Uk Uk +fj +Sw +Sw +Sw +UB +Sw +Sw +fj +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk +Uk Uk Uk Uk @@ -14403,8 +14228,6 @@ Uk Uk Uk Uk -"} -(82,1,1) = {" Uk Uk Uk @@ -14421,6 +14244,8 @@ Uk Uk Uk Uk +"} +(84,1,1) = {" Uk Uk Uk @@ -14436,42 +14261,6 @@ Uk Uk Uk Uk -MT -Ch -dW -WZ -Cr -eT -Ga -EC -rT -vH -vH -vH -fS -EC -Xg -eT -eT -St -vz -vz -vz -sY -sY -vz -vz -vz -cd -ny -vz -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -14502,6 +14291,14 @@ Uk Uk Uk Uk +fj +fj +fj +fj +fj +fj +fj +fj Uk Uk Uk @@ -14525,8 +14322,6 @@ Uk Uk Uk Uk -"} -(83,1,1) = {" Uk Uk Uk @@ -14558,42 +14353,6 @@ Uk Uk Uk Uk -vz -DH -dW -AO -St -nH -eT -eT -eT -eT -eT -eT -eT -eT -eT -eT -nH -St -vz -vz -vz -ow -cr -vz -vz -vz -cd -cd -vz -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -14607,6 +14366,8 @@ Uk Uk Uk Uk +"} +(85,1,1) = {" Uk Uk Uk @@ -14647,8 +14408,6 @@ Uk Uk Uk Uk -"} -(84,1,1) = {" Uk Uk Uk @@ -14680,42 +14439,6 @@ Uk Uk Uk Uk -vz -Or -qj -dW -St -St -Fc -eT -nH -eT -eT -eT -nH -eT -eT -mk -St -St -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz -cd -cd -vz -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -14765,12 +14488,12 @@ Uk Uk Uk Uk +"} +(86,1,1) = {" Uk Uk Uk Uk -"} -(85,1,1) = {" Uk Uk Uk @@ -14802,42 +14525,6 @@ Uk Uk Uk Uk -vz -ut -ao -dW -vz -St -St -St -St -St -St -St -St -St -St -St -St -vz -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz -cd -cd -vz -Aw -Aw -Aw -Aw -Aw -np -vz Uk Uk Uk @@ -14891,8 +14578,6 @@ Uk Uk Uk Uk -"} -(86,1,1) = {" Uk Uk Uk @@ -14924,42 +14609,9 @@ Uk Uk Uk Uk -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -vz -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz -cd -cd -vz -Aw -Aw -Aw -Aw -Aw -Aw -vz +Uk +"} +(87,1,1) = {" Uk Uk Uk @@ -15013,8 +14665,6 @@ Uk Uk Uk Uk -"} -(87,1,1) = {" Uk Uk Uk @@ -15063,25 +14713,6 @@ Uk Uk Uk Uk -vz -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz -cd -cd -vz -cp -Aw -Aw -Aw -Aw -Fz -vz Uk Uk Uk @@ -15101,6 +14732,8 @@ Uk Uk Uk Uk +"} +(88,1,1) = {" Uk Uk Uk @@ -15135,8 +14768,6 @@ Uk Uk Uk Uk -"} -(88,1,1) = {" Uk Uk Uk @@ -15185,25 +14816,8 @@ Uk Uk Uk Uk -vz -Aw -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk -vz -Aw -Aw -Aw -Aw -Aw -Aw -vz Uk Uk Uk @@ -15240,6 +14854,8 @@ Uk Uk Uk Uk +"} +(89,1,1) = {" Uk Uk Uk @@ -15257,8 +14873,6 @@ Uk Uk Uk Uk -"} -(89,1,1) = {" Uk Uk Uk @@ -15307,25 +14921,8 @@ Uk Uk Uk Uk -vz -vz -vz -vz -vz -vz -vz -vz -vz Uk Uk -vz -oc -oc -oc -oc -oc -oc -vz Uk Uk Uk diff --git a/_maps/map_files/Iteron/Iteron.dmm b/_maps/map_files/Iteron/Iteron.dmm index 5909e0e067cdb..bcdfabecdc540 100644 --- a/_maps/map_files/Iteron/Iteron.dmm +++ b/_maps/map_files/Iteron/Iteron.dmm @@ -51,6 +51,29 @@ dir = 1 }, /area/space) +"aS" = ( +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/structure/table/mainship/nometal, +/turf/open/floor/mainship/black, +/area/mainship/patrol_base/barracks) "aT" = ( /turf/open/floor/mainship_hull/gray/dir{ dir = 5 @@ -62,12 +85,6 @@ dir = 4 }, /area/mainship/patrol_base) -"aX" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/blue, -/area/mainship/patrol_base/prep) "ba" = ( /turf/open/floor/plating, /area/mainship/patrol_base/hanger) @@ -106,6 +123,15 @@ "bu" = ( /turf/closed/wall/mainship/outer/reinforced, /area/mainship/patrol_base) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base) "bG" = ( /obj/structure/largecrate, /turf/open/floor/mainship/orange{ @@ -247,14 +273,6 @@ }, /turf/open/floor/plating, /area/mainship/patrol_base/hanger) -"dc" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mainship/purple{ - dir = 4 - }, -/area/mainship/patrol_base/prep) "do" = ( /obj/machinery/telecomms/relay/preset/telecomms, /turf/open/floor/mainship/orange{ @@ -272,11 +290,6 @@ /obj/structure/droppod/nonmob/turret_pod, /turf/open/floor/prison/cleanmarked, /area/mainship/patrol_base/hanger) -"dL" = ( -/turf/open/floor/mainship/green{ - dir = 6 - }, -/area/mainship/patrol_base) "dP" = ( /obj/structure/dropship_piece/tadpole/tadpole_nose{ dir = 1; @@ -370,14 +383,6 @@ "eK" = ( /turf/closed/wall/mainship/outer/reinforced, /area/mainship/patrol_base/prep) -"eN" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/red{ - dir = 1 - }, -/area/mainship/patrol_base/prep) "ff" = ( /obj/structure/dropship_piece/two/weapon/leftleft{ dir = 1; @@ -394,10 +399,19 @@ dir = 1 }, /area/mainship/patrol_base/hanger) +"fg" = ( +/obj/structure/prop/mainship/doorblocker/engi, +/turf/open/floor/mainship/mono, +/area/mainship/patrol_base) "fk" = ( /obj/machinery/prop/computer/tadpole, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) +"fo" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 1 + }, +/area/mainship/patrol_base) "fz" = ( /turf/open/floor/mainship/orange{ dir = 5 @@ -428,11 +442,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space) -"fP" = ( -/turf/open/floor/mainship/red{ - dir = 9 - }, -/area/mainship/patrol_base/prep) "fT" = ( /obj/structure/drop_pod_launcher/supply, /obj/structure/droppod/nonmob/supply_pod, @@ -441,20 +450,6 @@ "fV" = ( /turf/open/floor/mainship/mono, /area/mainship/patrol_base) -"gb" = ( -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/red{ - dir = 1 - }, -/area/mainship/patrol_base/prep) -"gc" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/red{ - dir = 1 - }, -/area/mainship/patrol_base/prep) "gl" = ( /obj/structure/ship_ammo/cas/rocket/napalm, /turf/open/floor/mainship/orange{ @@ -543,9 +538,14 @@ /turf/open/floor/prison/plate, /area/mainship/patrol_base) "hA" = ( -/turf/open/floor/mainship/black/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 9 + }, +/obj/machinery/light, +/turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base) "hI" = ( /obj/effect/landmark/start/job/squadcorpsman, @@ -555,11 +555,6 @@ /obj/effect/landmark/start/job/squadleader, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/barracks) -"hP" = ( -/turf/open/floor/mainship/red{ - dir = 8 - }, -/area/mainship/patrol_base/prep) "hR" = ( /obj/machinery/light/mainship{ dir = 1 @@ -575,46 +570,14 @@ dir = 1 }, /area/mainship/patrol_base/command) -"ia" = ( -/obj/machinery/light/mainship{ - dir = 1 - }, -/turf/open/floor/mainship/red{ - dir = 5 - }, -/area/mainship/patrol_base/prep) -"ii" = ( -/turf/open/floor/mainship/orange{ - dir = 8 - }, -/area/mainship/patrol_base/prep) "il" = ( -/turf/open/floor/mainship/red{ - dir = 4 - }, -/area/mainship/patrol_base/prep) -"im" = ( -/obj/machinery/light/mainship{ - dir = 1 - }, -/turf/open/floor/mainship/purple{ +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ dir = 9 }, -/area/mainship/patrol_base/prep) -"iv" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/purple{ - dir = 1 - }, -/area/mainship/patrol_base/prep) -"iy" = ( -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/purple{ - dir = 1 - }, -/area/mainship/patrol_base/prep) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/prison/plate, +/area/mainship/patrol_base) "iE" = ( /obj/structure/table/mainship/nometal, /turf/open/floor/mainship/blue, @@ -659,12 +622,6 @@ dir = 4 }, /area/mainship/patrol_base/hanger) -"iM" = ( -/obj/machinery/light/mainship, -/turf/open/floor/mainship/blue{ - dir = 10 - }, -/area/mainship/patrol_base/prep) "iN" = ( /obj/structure/prop/mainship/sensor_computer2, /obj/machinery/light{ @@ -693,10 +650,6 @@ }, /turf/open/floor/prison/plate, /area/mainship/patrol_base/hanger) -"ja" = ( -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/orange, -/area/mainship/patrol_base/prep) "jk" = ( /obj/structure/largecrate/random/barrel, /turf/open/floor/mainship/orange{ @@ -707,14 +660,6 @@ /obj/structure/largecrate/random/case/double, /turf/open/floor/prison/plate, /area/mainship/patrol_base) -"jq" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/purple{ - dir = 1 - }, -/area/mainship/patrol_base/prep) "jr" = ( /obj/structure/ship_ammo/cas/minirocket, /obj/machinery/light{ @@ -766,11 +711,6 @@ }, /turf/open/floor/plating, /area/mainship/patrol_base/hanger) -"jU" = ( -/turf/open/floor/mainship/purple{ - dir = 5 - }, -/area/mainship/patrol_base/prep) "ka" = ( /obj/machinery/light/mainship{ dir = 4 @@ -847,6 +787,13 @@ /obj/structure/table/woodentable, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/command) +"kC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base) "kF" = ( /turf/open/floor/freezer, /area/mainship/patrol_base) @@ -874,11 +821,6 @@ "kP" = ( /turf/open/floor/mainship/mono, /area/mainship/patrol_base/prep) -"la" = ( -/turf/open/floor/mainship/purple{ - dir = 8 - }, -/area/mainship/patrol_base/prep) "ln" = ( /obj/structure/largecrate/random/barrel, /obj/machinery/light{ @@ -976,12 +918,6 @@ /obj/structure/patrol_point/tgmc_11, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) -"mI" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) "mL" = ( /obj/structure/patrol_point/tgmc_21, /turf/open/floor/plating/plating_catwalk, @@ -993,10 +929,6 @@ }, /turf/open/floor/prison/plate, /area/mainship/patrol_base) -"mZ" = ( -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/blue, -/area/mainship/patrol_base/prep) "na" = ( /obj/machinery/light{ dir = 4 @@ -1006,11 +938,6 @@ }, /turf/open/floor/prison/plate, /area/mainship/patrol_base/hanger) -"nt" = ( -/turf/open/floor/mainship/purple{ - dir = 4 - }, -/area/mainship/patrol_base/prep) "nz" = ( /obj/structure/largecrate/packed, /turf/open/floor/mainship/orange{ @@ -1124,6 +1051,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) +"oO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/prep) "oU" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -1207,14 +1146,6 @@ dir = 1 }, /area/mainship/patrol_base/command) -"qk" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mainship/red{ - dir = 8 - }, -/area/mainship/patrol_base/prep) "qr" = ( /obj/docking_port/mobile/marine_dropship/minidropship, /obj/structure/bed/chair/dropship/pilot{ @@ -1257,12 +1188,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base) -"qM" = ( -/obj/machinery/light/mainship, -/turf/open/floor/mainship/orange{ - dir = 6 - }, -/area/mainship/patrol_base/prep) "ra" = ( /obj/structure/shuttle/engine/propulsion/burst/left{ dir = 4 @@ -1402,6 +1327,9 @@ }, /turf/open/floor/freezer, /area/mainship/patrol_base) +"sY" = ( +/turf/open/floor/mainship/ntlogo/nt3, +/area/mainship/patrol_base) "sZ" = ( /obj/structure/toilet{ dir = 1; @@ -1457,41 +1385,17 @@ }, /area/mainship/patrol_base/barracks) "tJ" = ( -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, +/obj/machinery/camera/autoname/mainship{ + dir = 8 + }, +/turf/open/floor/mainship/green{ + dir = 5 + }, /area/mainship/patrol_base/prep) "tR" = ( /obj/effect/attach_point/crew_weapon/minidropship, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) -"tZ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mainship/blue{ - dir = 4 - }, -/area/mainship/patrol_base/prep) "ua" = ( /obj/machinery/vending/engivend, /turf/open/floor/mainship/mono, @@ -1573,6 +1477,16 @@ }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/hanger) +"uR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 5 + }, +/obj/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/prep) "uS" = ( /obj/structure/dropship_piece/tadpole/rearleft{ dir = 1 @@ -1594,12 +1508,8 @@ /turf/open/floor/prison/plate, /area/mainship/patrol_base) "vd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) +/turf/open/floor/mainship/research, +/area/mainship/patrol_base) "ve" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 9 @@ -1612,6 +1522,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) +"vf" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 9 + }, +/area/mainship/patrol_base) "vp" = ( /turf/open/floor/mainship/stripesquare, /area/mainship/patrol_base/hanger) @@ -1727,13 +1642,13 @@ /turf/open/floor/mainship/mono, /area/mainship/patrol_base/command) "wC" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 8 - }, -/turf/open/floor/mainship/purple{ - dir = 4 +/obj/effect/turf_decal/warning_stripes/thin, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 5 }, -/area/mainship/patrol_base/prep) +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/prison/plate, +/area/mainship/patrol_base) "xc" = ( /obj/machinery/vending/cigarette, /turf/open/floor/mainship/black{ @@ -1783,18 +1698,14 @@ }, /area/mainship/patrol_base/hanger) "xU" = ( -/turf/open/floor/mainship/black{ - dir = 1 +/turf/open/floor/mainship/black/corner{ + dir = 4 }, /area/mainship/patrol_base/barracks) "xZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 6 +/turf/open/floor/mainship/black/corner{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/prep) "yc" = ( /obj/structure/bed/chair/office/dark, @@ -1803,13 +1714,6 @@ dir = 8 }, /area/mainship/patrol_base) -"ye" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "yg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -1837,26 +1741,10 @@ dir = 4 }, /area/mainship/patrol_base) -"yu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "yy" = ( /obj/structure/patrol_point/tgmc_14, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/hanger) -"yC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "yF" = ( /obj/structure/dropship_piece/tadpole/engine{ dir = 1; @@ -1886,6 +1774,15 @@ dir = 8 }, /area/mainship/patrol_base) +"yR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base) "za" = ( /obj/structure/prop/mainship/mission_planning_system, /turf/open/floor/mainship/blue{ @@ -1995,6 +1892,11 @@ "Aq" = ( /turf/open/floor/prison/bright_clean, /area/mainship/patrol_base/hanger) +"Ay" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 5 + }, +/area/mainship/patrol_base) "AF" = ( /obj/machinery/light/mainship, /obj/effect/turf_decal/warning_stripes/thin{ @@ -2072,11 +1974,8 @@ }, /area/mainship/patrol_base/command) "Bv" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 4 - }, -/turf/open/floor/mainship/red{ - dir = 8 +/turf/open/floor/mainship/green{ + dir = 9 }, /area/mainship/patrol_base/prep) "Bx" = ( @@ -2087,80 +1986,12 @@ dir = 1 }, /area/mainship/patrol_base/hanger) -"By" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "BA" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base) -"BJ" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) -"BN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/table/mainship/nometal, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "BO" = ( /turf/open/floor/mainship/stripesquare, /area/mainship/patrol_base) @@ -2266,12 +2097,6 @@ dir = 1 }, /area/mainship/patrol_base) -"Dm" = ( -/obj/structure/sign/directions/supply{ - dir = 1 - }, -/turf/closed/wall/mainship/outer/reinforced, -/area/mainship/patrol_base/prep) "Dn" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -2297,10 +2122,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/mainship/mono, /area/mainship/patrol_base) -"Dw" = ( -/obj/structure/sign/directions/supply, -/turf/closed/wall/mainship/outer/reinforced, -/area/mainship/patrol_base/prep) "Dy" = ( /obj/machinery/vending/marineFood, /obj/item/reagent_containers/food/snacks/protein_pack, @@ -2329,31 +2150,6 @@ /obj/item/reagent_containers/food/snacks/protein_pack, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/barracks) -"DC" = ( -/obj/structure/table/mainship/nometal, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "DD" = ( /obj/machinery/computer/camera_advanced/overwatch/alpha, /turf/open/floor/mainship/blue{ @@ -2364,29 +2160,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/barracks) -"DO" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 9 - }, -/area/mainship/patrol_base/prep) -"DP" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 1 - }, -/area/mainship/patrol_base/prep) -"DR" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 5 - }, -/area/mainship/patrol_base/prep) -"DT" = ( -/turf/open/floor/mainship/research, -/area/mainship/patrol_base/prep) -"DX" = ( -/turf/open/floor/mainship/green{ - dir = 1 - }, -/area/mainship/patrol_base) "DY" = ( /obj/effect/turf_decal/warning_stripes/thin, /obj/effect/turf_decal/warning_stripes/thin{ @@ -2405,6 +2178,11 @@ }, /turf/open/floor/prison/plate, /area/mainship/patrol_base) +"Ef" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 6 + }, +/area/mainship/patrol_base) "Eq" = ( /obj/structure/dropship_piece/tadpole/tadpole_nose/left{ pixel_y = -32 @@ -2454,6 +2232,13 @@ }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/command) +"EJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base) "EQ" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 @@ -2501,6 +2286,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base) +"Fl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base) "Fn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, @@ -2553,8 +2350,111 @@ /obj/structure/bed/chair/dropship/pilot, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) -"FV" = ( -/obj/item/attachable/magnetic_harness, +"FX" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/table/mainship/nometal, +/turf/open/floor/mainship/mono, +/area/mainship/patrol_base/command) +"Gb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/barracks) +"Gc" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/closed/wall/mainship/outer/reinforced, +/area/mainship/patrol_base/barracks) +"Gi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/barracks) +"Gp" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/obj/structure/prop/mainship/prop_so{ + dir = 4 + }, +/turf/open/floor/mainship/blue, +/area/mainship/patrol_base) +"Gw" = ( +/obj/machinery/camera/autoname/mainship{ + dir = 4 + }, +/turf/open/floor/mainship/green{ + dir = 10 + }, +/area/mainship/patrol_base/prep) +"Gz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/barracks) +"GA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/patrol_base/prep) +"GE" = ( +/obj/structure/droppod, +/obj/structure/drop_pod_launcher, +/obj/machinery/light/mainship{ + dir = 4 + }, +/turf/open/floor/prison/cleanmarked, +/area/mainship/patrol_base/hanger) +"GN" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/prison/plate, +/area/mainship/patrol_base) +"GR" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 8 + }, +/area/mainship/patrol_base) +"GV" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/vehicle/ridden/powerloader, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/mainship/patrol_base) +"GY" = ( +/obj/effect/landmark/start/job/fieldcommander/campaign, +/turf/open/floor/mainship/mono, +/area/mainship/patrol_base) +"Hs" = ( /obj/item/attachable/magnetic_harness, /obj/item/attachable/magnetic_harness, /obj/item/attachable/magnetic_harness, @@ -2577,137 +2477,10 @@ /obj/item/attachable/magnetic_harness, /obj/item/attachable/magnetic_harness, /obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) -"FX" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/command) -"Gb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/barracks) -"Gc" = ( -/obj/machinery/status_display, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/closed/wall/mainship/outer/reinforced, -/area/mainship/patrol_base/barracks) -"Gi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/barracks) -"Gp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 - }, -/obj/structure/prop/mainship/prop_so{ - dir = 4 - }, -/turf/open/floor/mainship/blue, -/area/mainship/patrol_base) -"Gw" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 4 - }, -/turf/open/floor/mainship/orange{ - dir = 8 - }, -/area/mainship/patrol_base/prep) -"Gz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/turf/open/floor/mainship/black{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2, -/turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/barracks) -"GA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) -"GE" = ( -/obj/structure/droppod, -/obj/structure/drop_pod_launcher, -/obj/machinery/light/mainship{ - dir = 4 - }, -/turf/open/floor/prison/cleanmarked, -/area/mainship/patrol_base/hanger) -"GF" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 8 - }, -/area/mainship/patrol_base/prep) -"GG" = ( -/turf/open/floor/mainship/terragov{ - dir = 1 - }, -/area/mainship/patrol_base/prep) -"GI" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 4 - }, -/area/mainship/patrol_base/prep) -"GN" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison/plate, -/area/mainship/patrol_base) -"GR" = ( -/obj/effect/landmark/start/job/fieldcommander/campaign, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) -"GV" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/vehicle/ridden/powerloader, -/turf/open/floor/mainship/orange{ - dir = 4 - }, -/area/mainship/patrol_base) -"GY" = ( -/turf/open/floor/mainship/ntlogo, -/area/mainship/patrol_base/prep) -"Ha" = ( -/turf/open/floor/mainship/ntlogo/nt2, -/area/mainship/patrol_base/prep) -"Hb" = ( -/turf/open/floor/mainship/ntlogo/nt3, -/area/mainship/patrol_base/prep) -"Ht" = ( -/obj/effect/landmark/reward_spawn_location, -/obj/effect/turf_decal/warning_stripes/box/empty, -/obj/structure/closet/crate, -/turf/open/floor/prison/plate, -/area/mainship/patrol_base) "Hz" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 9 @@ -2925,12 +2698,6 @@ }, /turf/open/floor/mainship/black, /area/mainship/patrol_base) -"JE" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/orange, -/area/mainship/patrol_base/prep) "JG" = ( /turf/open/floor/mainship/black/corner{ dir = 8 @@ -2942,28 +2709,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/barracks) -"JJ" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 10 - }, -/area/mainship/patrol_base/prep) -"JV" = ( -/turf/open/floor/mainship/terragov/north, -/area/mainship/patrol_base/prep) -"JW" = ( -/turf/open/floor/mainship/terragov/north{ - dir = 6 - }, -/area/mainship/patrol_base/prep) -"JX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "JY" = ( /turf/open/floor/mainship/black/corner{ dir = 4 @@ -3037,15 +2782,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/barracks) -"KW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) "Lh" = ( /turf/open/floor/mainship/black/corner{ dir = 4 @@ -3061,14 +2797,6 @@ /obj/effect/turf_decal/warning_stripes/thin, /turf/open/floor/mainship/black, /area/mainship/patrol_base/hanger) -"LE" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mainship/black{ - dir = 1 - }, -/area/mainship/patrol_base) "LF" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 10 @@ -3080,12 +2808,10 @@ /turf/open/floor/mainship/mono, /area/mainship/patrol_base) "LM" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mainship/orange{ - dir = 8 - }, +/obj/effect/landmark/reward_spawn_location, +/obj/effect/turf_decal/warning_stripes/box/empty, +/obj/structure/closet/crate, +/turf/open/floor/prison/plate, /area/mainship/patrol_base/prep) "LP" = ( /obj/effect/turf_decal/warning_stripes/thin{ @@ -3124,11 +2850,6 @@ /obj/structure/table/mainship/nometal, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/command) -"Mu" = ( -/turf/open/floor/mainship/blue{ - dir = 6 - }, -/area/mainship/patrol_base/prep) "MA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -3193,12 +2914,6 @@ /obj/item/bodybag/cryobag, /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) -"Nj" = ( -/obj/effect/turf_decal/warning_stripes/box/arrow{ - dir = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) "Nm" = ( /obj/structure/table/mainship/nometal, /obj/item/roller, @@ -3238,12 +2953,6 @@ /obj/machinery/vending/cigarette, /turf/open/floor/mainship/black, /area/mainship/patrol_base/barracks) -"NO" = ( -/obj/structure/bed/chair/nometal{ - dir = 8 - }, -/turf/open/floor/mainship/blue, -/area/mainship/patrol_base/prep) "Ob" = ( /obj/effect/landmark/start/job/squadsmartgunner, /turf/open/floor/mainship/black/corner{ @@ -3260,7 +2969,7 @@ }, /area/mainship/patrol_base/hanger) "On" = ( -/turf/open/floor/mainship/black, +/turf/open/floor/mainship/black/corner, /area/mainship/patrol_base/barracks) "Op" = ( /obj/effect/turf_decal/warning_stripes/thin{ @@ -3271,22 +2980,9 @@ }, /area/mainship/patrol_base/hanger) "Oq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) -"Ot" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 +/turf/open/floor/mainship/black/corner{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/prep) "Ov" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -3348,6 +3044,11 @@ }, /turf/open/floor/prison/plate, /area/mainship/patrol_base/hanger) +"OR" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 4 + }, +/area/mainship/patrol_base) "OX" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 9 @@ -3360,6 +3061,11 @@ /obj/machinery/vending/tool, /turf/open/floor/mainship/mono, /area/mainship/patrol_base) +"Pl" = ( +/turf/open/floor/mainship/terragov/north{ + dir = 10 + }, +/area/mainship/patrol_base) "Pp" = ( /obj/machinery/cic_maptable/drawable/big{ pixel_x = -3 @@ -3415,86 +3121,9 @@ /turf/open/floor/mainship/mono, /area/mainship/patrol_base/hanger) "QP" = ( -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) -"QR" = ( -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/item/attachable/magnetic_harness, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) -"QV" = ( -/turf/open/floor/mainship/blue{ - dir = 8 - }, -/area/mainship/patrol_base/prep) -"Rb" = ( -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/facepaint/green, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/item/tool/hand_labeler, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/turf/open/floor/mainship/green{ + dir = 6 }, -/obj/item/facepaint/green, -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, /area/mainship/patrol_base/prep) "Rd" = ( /obj/structure/bed/chair/nometal{ @@ -3506,18 +3135,17 @@ /turf/open/floor/mainship/blue/full, /area/mainship/patrol_base) "Rj" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 8 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 }, -/turf/open/floor/mainship/blue{ - dir = 4 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 6 }, -/area/mainship/patrol_base/prep) -"Rq" = ( -/turf/open/floor/mainship/orange{ - dir = 10 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/area/mainship/patrol_base/prep) +/turf/open/floor/prison/plate, +/area/mainship/patrol_base) "Rt" = ( /obj/machinery/door/poddoor/mainship/open{ dir = 2; @@ -3536,6 +3164,11 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/hanger) +"RL" = ( +/turf/open/floor/mainship/terragov{ + dir = 1 + }, +/area/mainship/patrol_base) "RO" = ( /obj/effect/turf_decal/warning_stripes/box/arrow{ dir = 4 @@ -3554,14 +3187,8 @@ }, /area/mainship/patrol_base) "Sb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) +/turf/open/floor/mainship/ntlogo, +/area/mainship/patrol_base) "Sf" = ( /obj/machinery/cic_maptable, /turf/open/floor/mainship/blue, @@ -3577,12 +3204,31 @@ dir = 6 }, /area/mainship/patrol_base/command) -"Sn" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 +"So" = ( +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/facepaint/green, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/item/tool/hand_labeler, +/obj/structure/table/mainship/nometal, +/turf/open/floor/mainship/black{ + dir = 1 }, -/turf/open/floor/mainship/orange, -/area/mainship/patrol_base/prep) +/area/mainship/patrol_base/barracks) "Sq" = ( /obj/structure/table/reinforced, /obj/machinery/computer/operating, @@ -3603,19 +3249,9 @@ /obj/machinery/door/poddoor/campaign, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) -"SF" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 8 - }, -/turf/open/floor/mainship/green{ - dir = 5 - }, +"SG" = ( +/turf/open/floor/mainship/ntlogo/nt2, /area/mainship/patrol_base) -"SH" = ( -/turf/open/floor/mainship/blue{ - dir = 4 - }, -/area/mainship/patrol_base/prep) "SI" = ( /obj/machinery/door/airlock/mainship/medical/or/or1{ dir = 1 @@ -3628,6 +3264,33 @@ }, /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) +"SO" = ( +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/item/attachable/magnetic_harness, +/obj/structure/table/mainship/nometal, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/mainship/patrol_base/barracks) "SR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -3714,11 +3377,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/patrol_base/command) -"TQ" = ( -/turf/open/floor/mainship/green{ - dir = 9 - }, -/area/mainship/patrol_base) "Ug" = ( /obj/structure/table/reinforced, /obj/item/storage/box/gloves, @@ -3750,6 +3408,9 @@ /obj/machinery/light, /turf/open/floor/mainship/mono, /area/mainship/patrol_base) +"UK" = ( +/turf/open/floor/mainship/terragov/north, +/area/mainship/patrol_base) "UL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 1 @@ -3816,6 +3477,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/hanger) +"VI" = ( +/turf/open/floor/mainship/green{ + dir = 1 + }, +/area/mainship/patrol_base/prep) "VL" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 @@ -3886,14 +3552,6 @@ }, /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) -"Wn" = ( -/obj/machinery/camera/autoname/mainship{ - dir = 4 - }, -/turf/open/floor/mainship/green{ - dir = 10 - }, -/area/mainship/patrol_base) "Wu" = ( /obj/machinery/computer/body_scanconsole, /turf/open/floor/prison/sterilewhite, @@ -3956,10 +3614,17 @@ /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) "Xl" = ( -/turf/open/floor/mainship/orange{ - dir = 4 +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 }, -/area/mainship/patrol_base/prep) +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/prison/plate, +/area/mainship/patrol_base) "Xm" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 @@ -3967,14 +3632,7 @@ /turf/open/floor/mainship/black, /area/mainship/patrol_base/hanger) "Xn" = ( -/obj/structure/bed/chair/nometal{ - dir = 4 - }, -/turf/open/floor/mainship/mono, -/area/mainship/patrol_base/prep) -"Xo" = ( -/obj/structure/table/mainship/nometal, -/turf/open/floor/mainship/mono, +/turf/open/floor/mainship/green, /area/mainship/patrol_base/prep) "Xt" = ( /obj/effect/turf_decal/warning_stripes/thin{ @@ -4179,19 +3837,6 @@ /obj/machinery/light, /turf/open/floor/mainship/black, /area/mainship/patrol_base/prep) -"ZJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/prep) -"ZM" = ( -/obj/machinery/light, -/turf/open/floor/mainship/black, -/area/mainship/patrol_base) "ZN" = ( /obj/structure/droppod, /obj/structure/drop_pod_launcher, @@ -4200,9 +3845,6 @@ }, /turf/open/floor/prison/cleanmarked, /area/mainship/patrol_base/hanger) -"ZT" = ( -/turf/open/floor/mainship/green, -/area/mainship/patrol_base) "ZU" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -18842,19 +18484,261 @@ ef ef ef ef -ev -gA -sz -sz -zf -Cu -gC -Cu -Kb -sz -sz -rg -ev +ev +gA +sz +sz +zf +Cu +gC +Cu +Kb +sz +sz +rg +ev +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +"} +(62,1,1) = {" +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +eA +DD +XZ +vF +zj +zj +EF +IE +IE +Mo +vI +Iw +eA ef ef ef @@ -18972,7 +18856,7 @@ ef ef ef "} -(62,1,1) = {" +(63,1,1) = {" ef ef ef @@ -19085,17 +18969,17 @@ ef ef ef eA -DD -XZ -vF -zj -zj -EF -IE -IE -Mo -vI -Iw +hX +gC +gC +zt +uD +EI +IF +Kg +gC +gC +iE eA ef ef @@ -19214,7 +19098,7 @@ ef ef ef "} -(63,1,1) = {" +(64,1,1) = {" ef ef ef @@ -19327,17 +19211,17 @@ ef ef ef eA -hX +pa gC gC -zt -uD -EI -IF -Kg +zy +Cw +Br +IH +Kq gC gC -iE +Sf eA ef ef @@ -19456,7 +19340,7 @@ ef ef ef "} -(64,1,1) = {" +(65,1,1) = {" ef ef ef @@ -19569,17 +19453,17 @@ ef ef ef eA -pa -gC -gC -zy -Cw -Br -IH -Kq +pk +XZ gC +zz +CJ +EZ +IO +Ks gC -Sf +vI +Sh eA ef ef @@ -19698,7 +19582,7 @@ ef ef ef "} -(65,1,1) = {" +(66,1,1) = {" ef ef ef @@ -19810,22 +19694,22 @@ ef ef ef ef -eA -pk -XZ +kf +qg gC -zz -CJ -EZ -IO -Ks +pK +xy +CM +Fd +IP +bg +pK gC -vI -Sh -eA -ef +nQ +ev ef ef +YD ef ef ef @@ -19940,10 +19824,7 @@ ef ef ef "} -(66,1,1) = {" -ef -ef -ef +(67,1,1) = {" ef ef ef @@ -20052,22 +19933,25 @@ ef ef ef ef -kf -qg +cm +eu +eu +ev +py +Jm +Jm gC -pK -xy -CM -Fd -IP -bg -pK gC -nQ +Pp +gC +gC +Jm +FX +Yd ev -ef -ef -YD +eu +eu +Is ef ef ef @@ -20182,7 +20066,7 @@ ef ef ef "} -(67,1,1) = {" +(68,1,1) = {" ef ef ef @@ -20291,25 +20175,25 @@ ef ef ef ef -cm -eu -eu +aQ +ci +ci ev -py -Jm -Jm +pA +sD +Cu gC gC -Pp gC gC -Jm -FX -Yd +gC +Cu +kg +sb ev -eu -eu -Is +ci +ci +XV ef ef ef @@ -20424,7 +20308,7 @@ ef ef ef "} -(68,1,1) = {" +(69,1,1) = {" ef ef ef @@ -20537,17 +20421,17 @@ aQ ci ci ev -pA -sD -Cu -gC -gC +pG +sF +sF +sF gC gC gC -Cu -kg -sb +sF +sF +sF +Si ev ci ci @@ -20666,7 +20550,7 @@ ef ef ef "} -(69,1,1) = {" +(70,1,1) = {" ef ef ef @@ -20776,23 +20660,23 @@ ef ef ef aQ -ci -ci ev -pG -sF -sF -sF -gC -gC -gC -sF -sF -sF -Si ev -ci -ci +ev +ev +ev +ev +ev +CO +Fe +CO +ev +ev +ev +ev +ev +ev +ev XV ef ef @@ -20908,7 +20792,7 @@ ef ef ef "} -(70,1,1) = {" +(71,1,1) = {" ef ef ef @@ -21018,22 +20902,22 @@ ef ef ef aQ +eA +gx +gC +kz +gC +vQ ev +Dd +Ff +IT ev -ev -ev -ev -ev -ev -CO -Fe -CO -ev -ev -ev -ev -ev -ev +gQ +MB +gQ +MB +gQ ev XV ef @@ -21150,7 +21034,7 @@ ef ef ef "} -(71,1,1) = {" +(72,1,1) = {" ef ef ef @@ -21262,21 +21146,21 @@ ef aQ eA gx -gC +kg kz -gC -vQ +sG +vR ev -Dd +De Ff -IT +IW ev gQ -MB +gC gQ -MB +gC gQ -ev +eA XV ef ef @@ -21392,7 +21276,7 @@ ef ef ef "} -(72,1,1) = {" +(73,1,1) = {" ef ef ef @@ -21501,25 +21385,25 @@ ef ef ef ef -aQ +aT eA -gx -kg -kz -sG -vR -ev -De -Ff -IW +gC +km +pH +sK +vX +zD +Ds +Fn +us ev -gQ +Mt +PC +gC gC -gQ gC -gQ eA -XV +cl ef ef ef @@ -21634,7 +21518,8 @@ ef ef ef "} -(73,1,1) = {" +(74,1,1) = {" +ef ef ef ef @@ -21743,25 +21628,24 @@ ef ef ef ef -aT eA gC -km -pH -sK -vX -zD -Ds -Fn -us +kq +pK +gC +wa +ev +iJ +Ff +Nd ev Mt -PC +vQ gC gC gC eA -cl +ef ef ef ef @@ -21876,7 +21760,7 @@ ef ef ef "} -(74,1,1) = {" +(75,1,1) = {" ef ef ef @@ -21986,22 +21870,22 @@ ef ef ef ef -eA -gC -kq -pK -gC -wa ev -iJ -Ff -Nd ev -Mt -vQ -gC -gC +ks +ev +ev +ev +ev +iJ +Fs +IX +KF +MA +PG gC +Mt +VN eA ef ef @@ -22118,7 +22002,7 @@ ef ef ef "} -(75,1,1) = {" +(76,1,1) = {" ef ef ef @@ -22229,22 +22113,22 @@ ef ef ef ev +gL +kx +pN ev -ks -ev -ev -ev +wc ev iJ -Fs -IX -KF -MA -PG +Ff +us +ev gC -Mt -VN -eA +Ov +gC +TO +VO +ev ef ef ef @@ -22360,7 +22244,7 @@ ef ef ef "} -(76,1,1) = {" +(77,1,1) = {" ef ef ef @@ -22470,22 +22354,22 @@ ef ef ef ef -ev -gL -kx -pN -ev -wc +eA +gC +gC +gC +sP +wm ev iJ Ff us ev -gC -Ov -gC -TO -VO +ev +ev +ev +ev +ev ev ef ef @@ -22602,7 +22486,7 @@ ef ef ef "} -(77,1,1) = {" +(78,1,1) = {" ef ef ef @@ -22713,22 +22597,22 @@ ef ef ef eA +gQ +kz gC -gC -gC -sP -wm -ev -iJ -Ff -us -ev -ev -ev -ev -ev ev +wr ev +De +Ff +IW +bu +MM +PI +Sq +Ug +VT +bu ef ef ef @@ -22844,7 +22728,7 @@ ef ef ef "} -(78,1,1) = {" +(79,1,1) = {" ef ef ef @@ -22954,22 +22838,22 @@ ef ef ef ef -eA -gQ -kz -gC ev -wr ev -De +ev +ev +ev +ev +ev +iJ Ff -IW +us bu -MM -PI -Sq -Ug -VT +MP +MP +Sy +MP +VU bu ef ef @@ -23086,7 +22970,7 @@ ef ef ef "} -(79,1,1) = {" +(80,1,1) = {" ef ef ef @@ -23196,23 +23080,23 @@ ef ef ef ef -ev -ev -ev -ev -ev -ev -ev -iJ +bu +gX +kF +kF +sU +bu +zH +Dt Ff -us +Jc bu +MT MP MP -Sy MP -VU -bu +Wd +XT ef ef ef @@ -23328,7 +23212,7 @@ ef ef ef "} -(80,1,1) = {" +(81,1,1) = {" ef ef ef @@ -23439,22 +23323,22 @@ ef ef ef bu -gX +ha kF kF -sU +sZ bu -zH -Dt +UQ +fV Ff Jc bu -MT -MP -MP -MP -Wd -XT +MU +MU +SI +MU +MU +bu ef ef ef @@ -23570,7 +23454,7 @@ ef ef ef "} -(81,1,1) = {" +(82,1,1) = {" ef ef ef @@ -23681,21 +23565,21 @@ ef ef ef bu -ha -kF -kF -sZ bu -UQ +kG +pR +ta +bu +zU fV Ff -Jc +Ji bu -MU -MU -SI -MU -MU +MZ +PL +MP +MP +Wl bu ef ef @@ -23812,7 +23696,7 @@ ef ef ef "} -(82,1,1) = {" +(83,1,1) = {" ef ef ef @@ -23923,22 +23807,22 @@ ef ef ef bu +hg +kF +kF +tg bu -kG -pR -ta -bu -zU -fV -Ff -Ji -bu -MZ -PL +zS +Dv +Fu +Jc +cc MP MP -Wl -bu +SM +MP +Wu +cc ef ef ef @@ -24054,7 +23938,7 @@ ef ef ef "} -(83,1,1) = {" +(84,1,1) = {" ef ef ef @@ -24171,15 +24055,15 @@ kF tg bu zS -Dv -Fu +fV +Fx Jc -cc +KK MP MP -SM +SY +MP MP -Wu cc ef ef @@ -24296,7 +24180,7 @@ ef ef ef "} -(84,1,1) = {" +(85,1,1) = {" ef ef ef @@ -24407,22 +24291,22 @@ ef ef ef bu -hg -kF -kF -tg +bu +kG +pR +bu bu zS fV -Fx -Jc -KK -MP -MP -SY -MP +Fs +Jp +KN +KN +KN +Td MP -cc +Wv +bu ef ef ef @@ -24538,7 +24422,7 @@ ef ef ef "} -(85,1,1) = {" +(86,1,1) = {" ef ef ef @@ -24649,21 +24533,21 @@ ef ef ef bu -bu -kG -pR -bu +hi +kF +kF +kF bu zS fV -Fs -Jp -KN -KN -KN -Td +FL +JD +cc MP -Wv +MP +Te +MP +WM bu ef ef @@ -24780,7 +24664,7 @@ ef ef ef "} -(86,1,1) = {" +(87,1,1) = {" ef ef ef @@ -24895,18 +24779,18 @@ hi kF kF kF -bu +kF zS fV -FL -JD +Ff +Jc cc +Nf MP MP -Te MP -WM -bu +MP +cc ef ef ef @@ -25022,7 +24906,7 @@ ef ef ef "} -(87,1,1) = {" +(88,1,1) = {" ef ef ef @@ -25136,18 +25020,18 @@ bu hi kF kF -kF +ti kF zS fV Ff Jc cc -Nf -MP +Nm MP MP MP +WP cc ef ef @@ -25264,7 +25148,7 @@ ef ef ef "} -(88,1,1) = {" +(89,1,1) = {" ef ef ef @@ -25378,18 +25262,18 @@ bu hi kF kF -ti -kF +pR +bu zS fV Ff Jc cc -Nm +Nt MP MP MP -WP +WV cc ef ef @@ -25506,7 +25390,7 @@ ef ef ef "} -(89,1,1) = {" +(90,1,1) = {" ef ef ef @@ -25617,22 +25501,22 @@ ef ef ef bu -hi -kF -kF -pR +hl +kL +kL +kL bu -zS +zU fV Ff -Jc -cc -Nt -MP +Ji +bu +Nu +PS MP MP -WV -cc +WY +bu ef ef ef @@ -25748,7 +25632,7 @@ ef ef ef "} -(90,1,1) = {" +(91,1,1) = {" ef ef ef @@ -25859,21 +25743,21 @@ ef ef ef bu -hl -kL -kL -kL bu -zU +bu +bu +bu +bu +zS fV Ff -Ji +Ct +bu +bu +bu +bu +bu bu -Nu -PS -MP -MP -WY bu ef ef @@ -25990,7 +25874,7 @@ ef ef ef "} -(91,1,1) = {" +(92,1,1) = {" ef ef ef @@ -26100,23 +25984,23 @@ ef ef ef ef -bu -bu -bu -bu -bu -bu -zS -fV -Ff -Ct -bu -bu -bu -bu -bu -bu -bu +aQ +ci +ci +ci +cn +xc +Ab +xt +FS +JG +KR +Nx +cn +ci +ci +ci +XV ef ef ef @@ -26232,8 +26116,7 @@ ef ef ef "} -(92,1,1) = {" -ef +(93,1,1) = {" ef ef ef @@ -26342,23 +26225,32 @@ ef ef ef ef -aQ -ci -ci -ci cn -xc -Ab +cn +cn +cn +cn +cn +xm +xt xt FS -JG -KR -Nx +xt +xt +NJ cn -ci -ci -ci -XV +cn +cn +cn +cn +cn +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -26465,6 +26357,22 @@ ef ef ef ef +"} +(94,1,1) = {" +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -26473,23 +26381,6 @@ ef ef ef ef -"} -(93,1,1) = {" -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef ef ef ef @@ -26576,31 +26467,24 @@ ef ef ef ef -ef -ef -ef -ef -ef -ef -ef -cn cn -cn -cn -cn -cn -xm +eC +HK +eC +eC +tm +xo xt xt -FS +Gb xt xt -NJ -cn -cn -cn -cn -cn +Ob +PY +eC +eC +HK +eC cn ef ef @@ -26716,7 +26600,7 @@ ef ef ef "} -(94,1,1) = {" +(95,1,1) = {" ef ef ef @@ -26825,25 +26709,25 @@ ef ef ef ef -cn -eC -HK -eC -eC -tm -xo +cp +hI +hI +hI +hI +tH xt xt -Gb +Dy +Gc +Dy xt xt -Ob -PY -eC -eC -HK -eC -cn +Qh +Tg +Tg +Tg +Tg +cp ef ef ef @@ -26958,7 +26842,7 @@ ef ef ef "} -(95,1,1) = {" +(96,1,1) = {" ef ef ef @@ -27067,25 +26951,25 @@ ef ef ef ef -cp -hI -hI -hI -hI +cn +eC +eC +eC +eC tH -xt +xA xt Dy Gc Dy xt -xt +xA Qh -Tg -Tg -Tg -Tg -cp +eC +eC +eC +eC +cn ef ef ef @@ -27200,7 +27084,7 @@ ef ef ef "} -(96,1,1) = {" +(97,1,1) = {" ef ef ef @@ -27442,7 +27326,7 @@ ef ef ef "} -(97,1,1) = {" +(98,1,1) = {" ef ef ef @@ -27551,25 +27435,25 @@ ef ef ef ef -cn -eC -eC -eC -eC +cp +hN +hN +hN +hN tH -xA xt -Dy +xt +lO Gc -Dy +dY +xt xt -xA Qh -eC -eC -eC -eC -cn +Ti +Ti +Ti +Ti +cp ef ef ef @@ -27684,7 +27568,7 @@ ef ef ef "} -(98,1,1) = {" +(99,1,1) = {" ef ef ef @@ -27793,25 +27677,25 @@ ef ef ef ef -cp -hN -hN -hN -hN +cn +eC +Mm +eC +eC tH +xA xt xt -lO -Gc -dY -xt +Gi +JH xt +xA Qh -Ti -Ti -Ti -Ti -cp +eC +eC +Mm +eC +cn ef ef ef @@ -27926,7 +27810,7 @@ ef ef ef "} -(99,1,1) = {" +(100,1,1) = {" ef ef ef @@ -28036,23 +27920,23 @@ ef ef ef cn -eC -Mm -eC -eC -tH -xA +cn +cn +cn +cn +tI xt xt -Gi -JH +DJ +Gz xt -xA -Qh -eC -eC -Mm -eC +xt +xt +Qq +cn +cn +cn +cn cn ef ef @@ -28168,7 +28052,7 @@ ef ef ef "} -(100,1,1) = {" +(101,1,1) = {" ef ef ef @@ -28277,25 +28161,32 @@ ef ef ef ef +aQ +ci +ci +ci cn -cn -cn -cn -cn -tI +So xt xt -DJ -Gz xt +FS xt xt -Qq -cn -cn -cn -cn +xt +aS cn +ci +ci +ci +XV +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -28372,45 +28263,38 @@ ef ef ef ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -"} -(101,1,1) = {" +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +"} +(102,1,1) = {" ef ef ef @@ -28524,15 +28408,15 @@ ci ci ci cn -cn +Hs xU -xt +KU xt FS xt -xt +KU On -cn +SO cn ci ci @@ -28652,7 +28536,7 @@ ef ef ef "} -(102,1,1) = {" +(103,1,1) = {" ef ef ef @@ -28764,19 +28648,19 @@ ef aQ ci ci -ci -ci -cn -xU -KU -xt -FS -xt -KU -On -cn -ci -ci +eK +eK +eK +Ip +kP +kP +yg +kP +kP +ZH +eK +eK +eK ci ci XV @@ -28894,7 +28778,7 @@ ef ef ef "} -(103,1,1) = {" +(104,1,1) = {" ef ef ef @@ -29003,25 +28887,25 @@ ef ef ef ef +aQ +ci +ci eK -eK -eK -eK -eK -eK -Ip +LM +Bv +xZ kP kP yg kP kP -ZH -eK -eK -eK -eK -eK +Oq +Gw +LM eK +ci +ci +XV ef ef ef @@ -29136,7 +29020,7 @@ ef ef ef "} -(104,1,1) = {" +(105,1,1) = {" ef ef ef @@ -29245,25 +29129,25 @@ ef ef ef ef -eK -fP -hP -hP -qk -Bv -xZ -Am -Am -GA -Am -Am -Oq -Gw +aQ +ci +ci +cG LM -ii -ii -Rq -eK +VI +kP +kP +kP +yg +kP +kP +kP +Xn +LM +cG +ci +ci +XV ef ef ef @@ -29378,7 +29262,7 @@ ef ef ef "} -(105,1,1) = {" +(106,1,1) = {" ef ef ef @@ -29487,25 +29371,25 @@ ef ef ef ef -cG -eN -Xn -Xn -Xn -Xn -yg +aQ +ci +ci +eK +LM +tJ +JY kP -DO -GF -JJ kP yg -Xn -Xn -Xn -Xn -Sn -cG +kP +kP +OD +QP +LM +eK +ci +ci +XV ef ef ef @@ -29620,7 +29504,7 @@ ef ef ef "} -(106,1,1) = {" +(107,1,1) = {" ef ef ef @@ -29729,25 +29613,25 @@ ef ef ef ef -cG -gb -Xo -Xo -Xo -tJ -ye -kP -DP -GG -JV -kP -Ot -QP -Xo -Xo -Xo -ja -cG +aQ +bu +bu +eK +eK +eK +oO +Am +Am +GA +Am +Am +uR +eK +eK +eK +bu +bu +XV ef ef ef @@ -29862,7 +29746,7 @@ ef ef ef "} -(107,1,1) = {" +(108,1,1) = {" ef ef ef @@ -29971,25 +29855,25 @@ ef ef ef ef -cG -gb -Xo -Xo -Xo -By -yg -kP -DR -GI -JW -kP -yg -QR -Xo -Xo -Xo -ja -cG +aQ +bu +nB +rb +nB +oe +Ff +fV +vf +GR +Pl +fV +Ff +ui +nB +rb +nB +bu +XV ef ef ef @@ -30104,7 +29988,7 @@ ef ef ef "} -(108,1,1) = {" +(109,1,1) = {" ef ef ef @@ -30213,25 +30097,33 @@ ef ef ef ef -cG -gc -mI -mI -mI -mI -yg -kP -kP -GR -kP -kP -yg -mI -mI -mI -mI -JE -cG +aQ +bu +JB +JB +JB +il +kC +fV +fo +RL +UK +fV +FL +Xl +JB +JB +JB +bu +XV +ef +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -30337,6 +30229,22 @@ ef ef ef ef +"} +(110,1,1) = {" +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -30345,8 +30253,6 @@ ef ef ef ef -"} -(109,1,1) = {" ef ef ef @@ -30433,6 +30339,25 @@ ef ef ef ef +aQ +kb +fH +fH +fH +fA +Ff +fV +Ay +OR +Ef +fV +Ff +IK +fH +fH +fH +kb +XV ef ef ef @@ -30455,25 +30380,6 @@ ef ef ef ef -eK -ia -il -il -il -il -yg -kP -kP -kP -kP -kP -yg -Xl -Xl -Xl -Xl -qM -eK ef ef ef @@ -30565,6 +30471,8 @@ ef ef ef ef +"} +(111,1,1) = {" ef ef ef @@ -30587,8 +30495,6 @@ ef ef ef ef -"} -(110,1,1) = {" ef ef ef @@ -30675,6 +30581,25 @@ ef ef ef ef +aQ +bu +XY +oU +oU +KB +Ff +fV +fV +GY +fV +fV +Ff +aC +oU +oU +Bd +bu +XV ef ef ef @@ -30697,25 +30622,6 @@ ef ef ef ef -eK -im -la -la -la -la -yg -kP -kP -kP -kP -kP -yg -QV -QV -QV -QV -iM -eK ef ef ef @@ -30807,6 +30713,8 @@ ef ef ef ef +"} +(112,1,1) = {" ef ef ef @@ -30829,8 +30737,6 @@ ef ef ef ef -"} -(111,1,1) = {" ef ef ef @@ -30917,6 +30823,25 @@ ef ef ef ef +aQ +bu +oj +rJ +rJ +DY +Ff +fV +fV +fV +fV +fV +Ff +LP +rJ +rJ +Ec +bu +XV ef ef ef @@ -30939,25 +30864,6 @@ ef ef ef ef -cG -iv -Xn -Xn -Xn -BJ -JX -kP -DT -GY -DT -kP -yg -Xn -Xn -Xn -Xn -aX -cG ef ef ef @@ -31049,6 +30955,8 @@ ef ef ef ef +"} +(113,1,1) = {" ef ef ef @@ -31071,8 +30979,6 @@ ef ef ef ef -"} -(112,1,1) = {" ef ef ef @@ -31159,6 +31065,25 @@ ef ef ef ef +aQ +bu +oA +JB +JB +mU +Ff +fV +fV +fV +fV +fV +Ff +Dn +JB +JB +Wk +bu +XV ef ef ef @@ -31181,25 +31106,6 @@ ef ef ef ef -cG -iy -Xo -Xo -Xo -BN -yu -kP -DT -Ha -DT -kP -ZJ -Rb -Xo -Xo -Xo -mZ -cG ef ef ef @@ -31291,6 +31197,8 @@ ef ef ef ef +"} +(114,1,1) = {" ef ef ef @@ -31313,8 +31221,6 @@ ef ef ef ef -"} -(113,1,1) = {" ef ef ef @@ -31401,6 +31307,25 @@ ef ef ef ef +aQ +kb +fH +fH +fH +fA +Fx +fV +vd +Sb +vd +fV +Ff +IK +fH +fH +hm +kb +XV ef ef ef @@ -31423,25 +31348,6 @@ ef ef ef ef -cG -iy -Xo -Xo -Xo -DC -yg -kP -DT -Hb -DT -kP -yg -FV -Xo -Xo -Xo -mZ -cG ef ef ef @@ -31533,6 +31439,8 @@ ef ef ef ef +"} +(115,1,1) = {" ef ef ef @@ -31555,8 +31463,6 @@ ef ef ef ef -"} -(114,1,1) = {" ef ef ef @@ -31643,6 +31549,25 @@ ef ef ef ef +aQ +bu +oU +oU +oU +wC +EJ +fV +vd +SG +vd +fV +bE +Rj +oU +oU +oU +bu +XV ef ef ef @@ -31665,25 +31590,6 @@ ef ef ef ef -cG -jq -mI -mI -mI -mI -yC -vd -vd -Sb -vd -vd -KW -mI -mI -mI -mI -NO -cG ef ef ef @@ -31775,6 +31681,8 @@ ef ef ef ef +"} +(116,1,1) = {" ef ef ef @@ -31797,8 +31705,6 @@ ef ef ef ef -"} -(115,1,1) = {" ef ef ef @@ -31885,6 +31791,25 @@ ef ef ef ef +aQ +bu +pj +rU +pj +oe +Ff +fV +vd +sY +vd +fV +Ff +ui +pj +rU +pj +bu +XV ef ef ef @@ -31907,25 +31832,6 @@ ef ef ef ef -eK -jU -nt -nt -dc -wC -JY -kP -kP -yg -kP -kP -OD -Rj -tZ -SH -SH -Mu -eK ef ef ef @@ -32017,6 +31923,8 @@ ef ef ef ef +"} +(117,1,1) = {" ef ef ef @@ -32039,8 +31947,6 @@ ef ef ef ef -"} -(116,1,1) = {" ef ef ef @@ -32127,6 +32033,25 @@ ef ef ef ef +aQ +bu +bu +bu +bu +bu +Fl +Zm +Zm +yR +Zm +Zm +hA +bu +bu +bu +bu +bu +XV ef ef ef @@ -32149,25 +32074,6 @@ ef ef ef ef -eK -eK -eK -eK -eK -Dm -Ip -Nj -kP -yg -kP -Nj -ZH -Dw -eK -eK -eK -eK -eK ef ef ef @@ -32259,30 +32165,8 @@ ef ef ef ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -"} -(117,1,1) = {" +"} +(118,1,1) = {" ef ef ef @@ -32394,21 +32278,21 @@ ef aQ ci ci +ci bu -Ht -TQ -Dt -fV +ua +LR +Lh fV Ff fV -fV -hA -Wn -Ht +VX +ZG +Pc bu ci ci +ci XV ef ef @@ -32524,7 +32408,7 @@ ef ef ef "} -(118,1,1) = {" +(119,1,1) = {" ef ef ef @@ -32634,23 +32518,23 @@ ef ef ef aQ -ci -ci -cc -Ht -DX -fV -fV +bu +bu +bu +bu +bu +bu +Np fV Ff fV -fV -fV -ZT -Ht -cc -ci -ci +WU +bu +bu +bu +bu +bu +bu XV ef ef @@ -32766,7 +32650,7 @@ ef ef ef "} -(119,1,1) = {" +(120,1,1) = {" ef ef ef @@ -32876,23 +32760,23 @@ ef ef ef aQ -ci -ci bu -Ht -SF -Lh -fV +iF +lu +yc +Er +cc +zS fV Ff fV +Jc +OF +OF fV -VX -dL -Ht +Uj +Uj bu -ci -ci XV ef ef @@ -33008,7 +32892,7 @@ ef ef ef "} -(120,1,1) = {" +(121,1,1) = {" ef ef ef @@ -33118,23 +33002,23 @@ ef ef ef aQ -bu -bu -bu -bu -bu -LE +cc +iG fV fV +Es +cc +zS +fV Ff fV +Jc +OF +OF fV -ZM -bu -bu -bu -bu -bu +Uj +Uj +cc XV ef ef @@ -33250,7 +33134,7 @@ ef ef ef "} -(121,1,1) = {" +(122,1,1) = {" ef ef ef @@ -33360,23 +33244,23 @@ ef ef ef aQ -bu -nB -rb -nB -oe -zS -fV +cc +iI +rV fV -Ff +ur +ta +zS fV +HJ fV Jc -ui -nB -rb -nB -bu +OF +OF +fV +Uj +Uj +cc XV ef ef @@ -33492,7 +33376,7 @@ ef ef ef "} -(122,1,1) = {" +(123,1,1) = {" ef ef ef @@ -33603,21 +33487,21 @@ ef ef aQ bu -JB -JB -JB -mU +pm +se +yr +us +LV zS fV -fV Ff fV -fV Jc -Dn -JB -JB -JB +fV +fV +fV +fV +UH bu XV ef @@ -33734,7 +33618,7 @@ ef ef ef "} -(123,1,1) = {" +(124,1,1) = {" ef ef ef @@ -33844,23 +33728,23 @@ ef ef ef aQ -kb -fH -fH -fH -fA -zS +cc +iN fV +qJ +ur +ta +zS fV Ff fV -fV Jc -IK -fH -fH -fH -kb +OJ +OJ +fV +Un +Un +cc XV ef ef @@ -33976,7 +33860,7 @@ ef ef ef "} -(124,1,1) = {" +(125,1,1) = {" ef ef ef @@ -34086,23 +33970,23 @@ ef ef ef aQ -bu -XY -oU -oU -KB -zS +cc +iJ fV fV -Ff +Gp +cc +zS fV +Ff fV Jc -aC -oU -oU -Bd -bu +OJ +OJ +fV +Un +Un +cc XV ef ef @@ -34218,7 +34102,60 @@ ef ef ef "} -(125,1,1) = {" +(126,1,1) = {" +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -34274,6 +34211,25 @@ ef ef ef ef +aQ +bu +ZA +aU +yt +ct +cc +Bl +fV +Ff +fV +Ln +OJ +Rd +fV +Un +Un +bu +XV ef ef ef @@ -34327,25 +34283,6 @@ ef ef ef ef -aQ -bu -oj -rJ -rJ -DY -zS -fV -fV -Ff -fV -fV -Jc -LP -rJ -rJ -Ec -bu -XV ef ef ef @@ -34406,6 +34343,8 @@ ef ef ef ef +"} +(127,1,1) = {" ef ef ef @@ -34459,8 +34398,6 @@ ef ef ef ef -"} -(126,1,1) = {" ef ef ef @@ -34514,6 +34451,29 @@ ef ef ef ef +ab +ab +ab +ab +ab +sr +sr +ab +ab +Oj +Qt +SB +Qt +WX +ab +ab +sr +sr +ab +ab +ab +ab +ab ef ef ef @@ -34569,25 +34529,6 @@ ef ef ef ef -aQ -bu -oA -JB -JB -mU -zS -fV -fV -Ff -fV -fV -Jc -Dn -JB -JB -Wk -bu -XV ef ef ef @@ -34644,6 +34585,8 @@ ef ef ef ef +"} +(128,1,1) = {" ef ef ef @@ -34701,8 +34644,6 @@ ef ef ef ef -"} -(127,1,1) = {" ef ef ef @@ -34751,6 +34692,31 @@ ef ef ef ef +ab +ab +Yh +uN +Yh +Xy +Yh +Yh +uN +Yh +Op +iX +HQ +iX +Xm +Yh +YG +Yh +Yh +Xy +Yh +YG +Yh +ab +ab ef ef ef @@ -34811,25 +34777,6 @@ ef ef ef ef -aQ -kb -fH -fH -fH -fA -zS -fV -fV -Ff -fV -fV -Jc -IK -fH -fH -hm -kb -XV ef ef ef @@ -34880,6 +34827,8 @@ ef ef ef ef +"} +(129,1,1) = {" ef ef ef @@ -34943,8 +34892,6 @@ ef ef ef ef -"} -(128,1,1) = {" ef ef ef @@ -34987,6 +34934,31 @@ ef ef ef ef +ak +ao +ba +ba +ba +ba +ba +ba +ba +ba +Bn +iX +HQ +iX +LC +ba +ba +ba +ba +ba +ba +ba +ba +ZU +ak ef ef ef @@ -35053,25 +35025,6 @@ ef ef ef ef -aQ -bu -oU -oU -oU -KB -zS -fV -fV -Ff -fV -fV -Jc -aC -oU -oU -oU -bu -XV ef ef ef @@ -35116,6 +35069,8 @@ ef ef ef ef +"} +(130,1,1) = {" ef ef ef @@ -35185,8 +35140,6 @@ ef ef ef ef -"} -(129,1,1) = {" ef ef ef @@ -35223,6 +35176,31 @@ ef ef ef ef +ak +ap +ba +ba +ff +iY +mr +rf +uS +ba +Bn +iX +HQ +iX +LC +ba +jP +iY +cQ +XD +Yn +YX +ba +ZU +ak ef ef ef @@ -35295,25 +35273,6 @@ ef ef ef ef -aQ -bu -pj -rU -pj -oe -zS -fV -fV -Ff -fV -fV -Jc -ui -pj -rU -pj -bu -XV ef ef ef @@ -35352,6 +35311,8 @@ ef ef ef ef +"} +(131,1,1) = {" ef ef ef @@ -35427,8 +35388,6 @@ ef ef ef ef -"} -(130,1,1) = {" ef ef ef @@ -35459,6 +35418,31 @@ ef ef ef ef +ak +ap +ba +cI +Ys +iX +mw +rp +uQ +ba +Bn +iX +HQ +TH +LC +ba +tv +YC +iX +iX +Ys +Za +ba +ZU +ak ef ef ef @@ -35537,25 +35521,6 @@ ef ef ef ef -aQ -bu -bu -bu -bu -bu -LE -fV -fV -Ff -fV -fV -ZM -bu -bu -bu -bu -bu -XV ef ef ef @@ -35588,6 +35553,8 @@ ef ef ef ef +"} +(132,1,1) = {" ef ef ef @@ -35669,8 +35636,6 @@ ef ef ef ef -"} -(131,1,1) = {" ef ef ef @@ -35695,6 +35660,31 @@ ef ef ef ef +ak +ap +ba +dP +fk +qr +tR +rq +Rt +ba +Ox +iX +HQ +iX +LC +ba +Rt +rq +rq +FU +Yw +Zb +ba +ZU +ak ef ef ef @@ -35779,25 +35769,6 @@ ef ef ef ef -aQ -ci -ci -ci -bu -ua -LR -Lh -fV -Ff -fV -VX -ZG -Pc -bu -ci -ci -ci -XV ef ef ef @@ -35824,6 +35795,8 @@ ef ef ef ef +"} +(133,1,1) = {" ef ef ef @@ -35911,8 +35884,6 @@ ef ef ef ef -"} -(132,1,1) = {" ef ef ef @@ -35931,6 +35902,31 @@ ef ef ef ef +ak +ap +ba +bi +kM +iX +uf +yy +uQ +ba +Bn +iX +HQ +iX +LC +ba +uQ +iX +iX +iX +Jj +Eq +ba +ZU +ak ef ef ef @@ -36021,25 +36017,6 @@ ef ef ef ef -aQ -bu -bu -bu -bu -bu -bu -Np -fV -Ff -fV -WU -bu -bu -bu -bu -bu -bu -XV ef ef ef @@ -36060,6 +36037,8 @@ ef ef ef ef +"} +(134,1,1) = {" ef ef ef @@ -36153,8 +36132,6 @@ ef ef ef ef -"} -(133,1,1) = {" ef ef ef @@ -36167,6 +36144,31 @@ ef ef ef ef +ak +ap +ba +ba +bo +iY +mr +yF +da +ba +Bn +Ry +SR +iX +LC +oK +Rw +iY +cQ +XD +Ao +MC +ba +ZU +ak ef ef ef @@ -36263,25 +36265,6 @@ ef ef ef ef -aQ -bu -iF -lu -yc -Er -cc -zS -fV -Ff -fV -Jc -OF -OF -fV -Uj -Uj -bu -XV ef ef ef @@ -36296,6 +36279,8 @@ ef ef ef ef +"} +(135,1,1) = {" ef ef ef @@ -36395,14 +36380,37 @@ ef ef ef ef -"} -(134,1,1) = {" ef ef ef ef ef ef +ak +aq +bH +bH +bH +bH +bH +bH +bH +bH +Bn +iX +HQ +iX +LC +bH +bH +bH +bH +bH +bH +bH +bH +ZU +ak ef ef ef @@ -36505,25 +36513,6 @@ ef ef ef ef -aQ -cc -iG -fV -fV -Es -cc -zS -fV -Ff -fV -Jc -OF -OF -fV -Uj -Uj -cc -XV ef ef ef @@ -36532,6 +36521,8 @@ ef ef ef ef +"} +(136,1,1) = {" ef ef ef @@ -36637,8 +36628,31 @@ ef ef ef ef -"} -(135,1,1) = {" +ak +aq +Zc +Zc +Zc +Zc +Zc +Zc +Zc +Zc +Bn +iX +HQ +iX +LC +Zc +Zc +Zc +Zc +Zc +Zc +Zc +Zc +ZU +ak ef ef ef @@ -36747,27 +36761,10 @@ ef ef ef ef -aQ -cc -iI -rV -fV -ur -ta -zS -fV -HJ -fV -Jc -OF -OF -fV -Uj -Uj -cc -XV ef ef +"} +(137,1,1) = {" ef ef ef @@ -36873,14 +36870,37 @@ ef ef ef ef +ak +ap +ba +ba +ff +iY +mr +rf +uS +ba +Bn +iX +SZ +UL +LC +ba +jP +iY +cQ +XD +Yn +YX +ba +ZU +ak ef ef ef ef ef ef -"} -(136,1,1) = {" ef ef ef @@ -36985,29 +37005,12 @@ ef ef ef ef +"} +(138,1,1) = {" ef ef ef ef -aQ -bu -pm -se -yr -us -LV -zS -fV -Ff -fV -Jc -fV -fV -fV -fV -UH -bu -XV ef ef ef @@ -37109,6 +37112,31 @@ ef ef ef ef +ak +ap +ba +cI +Ys +iX +mL +rB +uQ +ba +Bn +iX +HQ +UM +LC +an +CA +iX +iX +iX +Ys +Za +ba +ZU +ak ef ef ef @@ -37121,8 +37149,6 @@ ef ef ef ef -"} -(137,1,1) = {" ef ef ef @@ -37221,6 +37247,8 @@ ef ef ef ef +"} +(139,1,1) = {" ef ef ef @@ -37231,25 +37259,6 @@ ef ef ef ef -aQ -cc -iN -fV -qJ -ur -ta -zS -fV -Ff -fV -Jc -OJ -OJ -fV -Un -Un -cc -XV ef ef ef @@ -37345,6 +37354,31 @@ ef ef ef ef +ak +ap +ba +dP +fk +qr +tR +rq +Rt +ba +Ox +iX +HQ +iX +LC +ba +Rt +rq +rq +FU +Yw +Zb +ba +ZU +ak ef ef ef @@ -37363,8 +37397,6 @@ ef ef ef ef -"} -(138,1,1) = {" ef ef ef @@ -37457,6 +37489,8 @@ ef ef ef ef +"} +(140,1,1) = {" ef ef ef @@ -37473,25 +37507,6 @@ ef ef ef ef -aQ -cc -iJ -fV -fV -Gp -cc -zS -fV -Ff -fV -Jc -OJ -OJ -fV -Un -Un -cc -XV ef ef ef @@ -37581,6 +37596,31 @@ ef ef ef ef +ak +ap +ba +bi +kM +iX +um +yH +uQ +ba +Bn +iX +HQ +iX +LC +ba +uQ +iX +iX +iX +Jj +Eq +ba +ZU +ak ef ef ef @@ -37605,8 +37645,6 @@ ef ef ef ef -"} -(139,1,1) = {" ef ef ef @@ -37693,6 +37731,8 @@ ef ef ef ef +"} +(141,1,1) = {" ef ef ef @@ -37715,25 +37755,6 @@ ef ef ef ef -aQ -bu -ZA -aU -yt -ct -cc -Bl -fV -Ff -fV -Ln -OJ -Rd -fV -Un -Un -bu -XV ef ef ef @@ -37817,6 +37838,31 @@ ef ef ef ef +ak +ap +ba +ba +bo +iY +mr +yF +da +ba +Bn +iX +HQ +iX +LC +ba +Rw +iY +cQ +XD +Ao +MC +ba +ZU +ak ef ef ef @@ -37847,8 +37893,6 @@ ef ef ef ef -"} -(140,1,1) = {" ef ef ef @@ -37929,6 +37973,8 @@ ef ef ef ef +"} +(142,1,1) = {" ef ef ef @@ -37955,29 +38001,6 @@ ef ef ef ef -ab -ab -ab -ab -ab -sr -sr -ab -ab -Oj -Qt -SB -Qt -WX -ab -ab -sr -sr -ab -ab -ab -ab -ab ef ef ef @@ -38057,6 +38080,31 @@ ef ef ef ef +ak +aL +ba +ba +ba +ba +ba +ba +ba +ba +Bn +iX +HQ +iX +LC +ba +ba +ba +ba +ba +ba +ba +ba +ZU +ak ef ef ef @@ -38089,28 +38137,6 @@ ef ef ef ef -"} -(141,1,1) = {" -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef ef ef ef @@ -38189,6 +38215,8 @@ ef ef ef ef +"} +(143,1,1) = {" ef ef ef @@ -38196,31 +38224,6 @@ ef ef ef ef -ab -ab -Yh -uN -Yh -Xy -Yh -Yh -uN -Yh -Op -iX -HQ -iX -Xm -Yh -YG -Yh -Yh -Xy -Yh -YG -Yh -ab -ab ef ef ef @@ -38319,6 +38322,31 @@ ef ef ef ef +ab +ab +YB +na +YB +iZ +YB +YB +na +OP +Bx +iX +HQ +iX +LF +OP +Zf +YB +YB +iZ +YB +Zf +YB +ab +ab ef ef ef @@ -38331,8 +38359,6 @@ ef ef ef ef -"} -(142,1,1) = {" ef ef ef @@ -38431,6 +38457,8 @@ ef ef ef ef +"} +(144,1,1) = {" ef ef ef @@ -38438,31 +38466,6 @@ ef ef ef ef -ak -ao -ba -ba -ba -ba -ba -ba -ba -ba -Bn -iX -HQ -iX -LC -ba -ba -ba -ba -ba -ba -ba -ba -ZU -ak ef ef ef @@ -38562,6 +38565,29 @@ ef ef ef ef +ab +ab +ab +ab +ab +ab +ab +ab +ab +Op +RO +HQ +RO +Xt +ab +ab +ab +ab +ab +ab +ab +ab +ab ef ef ef @@ -38573,8 +38599,6 @@ ef ef ef ef -"} -(143,1,1) = {" ef ef ef @@ -38675,36 +38699,13 @@ ef ef ef ef +"} +(145,1,1) = {" ef ef ef ef ef -ak -ap -ba -ba -ff -iY -mr -rf -uS -ba -Bn -iX -HQ -iX -LC -ba -jP -iY -cQ -XD -Yn -YX -ba -ZU -ak ef ef ef @@ -38807,6 +38808,27 @@ ef ef ef ef +bu +jK +ln +jk +uw +yM +qB +vB +OA +fV +Fx +fV +XN +Uo +jr +Uo +gl +gl +zT +Zp +bu ef ef ef @@ -38815,8 +38837,6 @@ ef ef ef ef -"} -(144,1,1) = {" ef ef ef @@ -38921,32 +38941,9 @@ ef ef ef ef +"} +(146,1,1) = {" ef -ak -ap -ba -cI -Ys -iX -mw -rp -uQ -ba -Bn -iX -HQ -TH -LC -ba -tv -YC -iX -iX -Ys -Za -ba -ZU -ak ef ef ef @@ -39053,12 +39050,31 @@ ef ef ef ef +bu +dX +lI +jn +ux +zA +fH +fH +BA +Dv +Fu +fV +LK +Ky +Ky +Ky +fH +fH +fH +Zr +bu ef ef ef ef -"} -(145,1,1) = {" ef ef ef @@ -39164,34 +39180,11 @@ ef ef ef ef -ak -ap -ba -dP -fk -qr -tR -rq -Rt -ba -Ox -iX -HQ -iX -LC -ba -Rt -rq -rq -FU -Yw -Zb -ba -ZU -ak ef ef ef +"} +(147,1,1) = {" ef ef ef @@ -39299,8 +39292,27 @@ ef ef ef ef -"} -(146,1,1) = {" +bu +dU +fH +jn +fH +fH +fH +fH +BA +fV +Fx +fV +LK +fH +fH +fH +fH +fH +fH +Zr +bu ef ef ef @@ -39406,31 +39418,6 @@ ef ef ef ef -ak -ap -ba -bi -kM -iX -uf -yy -uQ -ba -Bn -iX -HQ -iX -LC -ba -uQ -iX -iX -iX -Jj -Eq -ba -ZU -ak ef ef ef @@ -39438,6 +39425,8 @@ ef ef ef ef +"} +(148,1,1) = {" ef ef ef @@ -39541,12 +39530,31 @@ ef ef ef ef -"} -(147,1,1) = {" ef ef ef ef +bu +dC +fH +fH +fH +fH +fH +fH +BA +fV +Fx +fV +LK +fH +fH +fH +fH +fH +fH +Zx +bu ef ef ef @@ -39648,35 +39656,6 @@ ef ef ef ef -ak -ap -ba -ba -bo -iY -mr -yF -da -ba -Bn -Ry -SR -iX -LC -oK -Rw -iY -cQ -XD -Ao -MC -ba -ZU -ak -ef -ef -ef -ef ef ef ef @@ -39688,6 +39667,8 @@ ef ef ef ef +"} +(149,1,1) = {" ef ef ef @@ -39783,8 +39764,6 @@ ef ef ef ef -"} -(148,1,1) = {" ef ef ef @@ -39797,6 +39776,27 @@ ef ef ef ef +bu +dC +fH +qv +vb +zY +fH +fH +BA +fV +FL +UR +LK +fH +GN +GN +tC +tC +tC +CB +bu ef ef ef @@ -39890,31 +39890,6 @@ ef ef ef ef -ak -aq -bH -bH -bH -bH -bH -bH -bH -bH -Bn -iX -HQ -iX -LC -bH -bH -bH -bH -bH -bH -bH -bH -ZU -ak ef ef ef @@ -39934,6 +39909,8 @@ ef ef ef ef +"} +(150,1,1) = {" ef ef ef @@ -40025,8 +40002,6 @@ ef ef ef ef -"} -(149,1,1) = {" ef ef ef @@ -40043,6 +40018,27 @@ ef ef ef ef +bu +bG +lN +js +nz +nz +GV +XJ +OL +RQ +Fx +RQ +Zy +XJ +AL +nA +XJ +XJ +wh +oD +bu ef ef ef @@ -40132,31 +40128,6 @@ ef ef ef ef -ak -aq -Zc -Zc -Zc -Zc -Zc -Zc -Zc -Zc -Bn -iX -HQ -iX -LC -Zc -Zc -Zc -Zc -Zc -Zc -Zc -Zc -ZU -ak ef ef ef @@ -40180,6 +40151,8 @@ ef ef ef ef +"} +(151,1,1) = {" ef ef ef @@ -40267,8 +40240,6 @@ ef ef ef ef -"} -(150,1,1) = {" ef ef ef @@ -40288,6 +40259,29 @@ ef ef ef ef +ab +ab +ab +ab +ab +ab +ab +ab +ab +OX +fV +Fx +fV +ZD +ab +ab +ab +ab +ab +ab +ab +ab +ab ef ef ef @@ -40374,31 +40368,6 @@ ef ef ef ef -ak -ap -ba -ba -ff -iY -mr -rf -uS -ba -Bn -iX -SZ -UL -LC -ba -jP -iY -cQ -XD -Yn -YX -ba -ZU -ak ef ef ef @@ -40424,6 +40393,8 @@ ef ef ef ef +"} +(152,1,1) = {" ef ef ef @@ -40509,8 +40480,6 @@ ef ef ef ef -"} -(151,1,1) = {" ef ef ef @@ -40532,6 +40501,29 @@ ef ef ef ef +ab +fT +fT +fT +qy +rK +rK +nL +ab +UQ +fV +Fx +fV +Jc +ab +rR +bJ +bJ +qw +bJ +bJ +bJ +ab ef ef ef @@ -40616,31 +40608,6 @@ ef ef ef ef -ak -ap -ba -cI -Ys -iX -mL -rB -uQ -ba -Bn -iX -HQ -UM -LC -an -CA -iX -iX -iX -Ys -Za -ba -ZU -ak ef ef ef @@ -40668,6 +40635,8 @@ ef ef ef ef +"} +(153,1,1) = {" ef ef ef @@ -40751,8 +40720,6 @@ ef ef ef ef -"} -(152,1,1) = {" ef ef ef @@ -40776,6 +40743,29 @@ ef ef ef ef +ab +xJ +jy +jy +jy +nZ +Tr +Hz +ab +zU +fV +Fx +fV +Ji +ab +ke +Tr +UP +jy +jy +jy +uA +ab ef ef ef @@ -40858,31 +40848,6 @@ ef ef ef ef -ak -ap -ba -dP -fk -qr -tR -rq -Rt -ba -Ox -iX -HQ -iX -LC -ba -Rt -rq -rq -FU -Yw -Zb -ba -ZU -ak ef ef ef @@ -40912,6 +40877,8 @@ ef ef ef ef +"} +(154,1,1) = {" ef ef ef @@ -40993,8 +40960,6 @@ ef ef ef ef -"} -(153,1,1) = {" ef ef ef @@ -41020,6 +40985,29 @@ ef ef ef ef +ab +bJ +bJ +bJ +bJ +nL +Aq +HD +ab +Cl +fV +Fx +fV +LZ +ab +HD +Aq +rR +bJ +bJ +bJ +bJ +ab ef ef ef @@ -41100,31 +41088,6 @@ ef ef ef ef -ak -ap -ba -bi -kM -iX -um -yH -uQ -ba -Bn -iX -HQ -iX -LC -ba -uQ -iX -iX -iX -Jj -Eq -ba -ZU -ak ef ef ef @@ -41156,6 +41119,8 @@ ef ef ef ef +"} +(155,1,1) = {" ef ef ef @@ -41235,8 +41200,6 @@ ef ef ef ef -"} -(154,1,1) = {" ef ef ef @@ -41264,6 +41227,29 @@ ef ef ef ef +ab +bZ +bJ +bJ +jL +om +AF +ab +ab +zS +fV +Fx +fV +Jc +ab +ab +ku +UZ +jL +bJ +bJ +ZN +ab ef ef ef @@ -41342,31 +41328,6 @@ ef ef ef ef -ak -ap -ba -ba -bo -iY -mr -yF -da -ba -Bn -iX -HQ -iX -LC -ba -Rw -iY -cQ -XD -Ao -MC -ba -ZU -ak ef ef ef @@ -41400,6 +41361,8 @@ ef ef ef ef +"} +(156,1,1) = {" ef ef ef @@ -41477,8 +41440,6 @@ ef ef ef ef -"} -(155,1,1) = {" ef ef ef @@ -41508,6 +41469,29 @@ ef ef ef ef +ab +bI +jy +jy +jy +ve +rR +vp +yJ +BO +fV +Fx +fV +BO +yJ +vp +nL +Cx +jy +jy +jy +WQ +ab ef ef ef @@ -41584,31 +41568,6 @@ ef ef ef ef -ak -aL -ba -ba -ba -ba -ba -ba -ba -ba -Bn -iX -HQ -iX -LC -ba -ba -ba -ba -ba -ba -ba -ba -ZU -ak ef ef ef @@ -41644,6 +41603,8 @@ ef ef ef ef +"} +(157,1,1) = {" ef ef ef @@ -41719,8 +41680,6 @@ ef ef ef ef -"} -(156,1,1) = {" ef ef ef @@ -41752,6 +41711,29 @@ ef ef ef ef +ab +bJ +bJ +bJ +dE +or +rR +vp +yJ +BO +Ck +Fx +UV +BO +yJ +vp +nL +Vo +bJ +bJ +bJ +bJ +ab ef ef ef @@ -41826,31 +41808,6 @@ ef ef ef ef -ab -ab -YB -na -YB -iZ -YB -YB -na -OP -Bx -iX -HQ -iX -LF -OP -Zf -YB -YB -iZ -YB -Zf -YB -ab -ab ef ef ef @@ -41888,6 +41845,8 @@ ef ef ef ef +"} +(158,1,1) = {" ef ef ef @@ -41961,8 +41920,6 @@ ef ef ef ef -"} -(157,1,1) = {" ef ef ef @@ -41996,6 +41953,29 @@ ef ef ef ef +ab +bJ +bJ +bJ +jI +or +rR +vp +yJ +BO +fV +Fx +fV +BO +yJ +vp +nL +Vo +jI +bJ +bJ +bJ +ab ef ef ef @@ -42069,39 +42049,6 @@ ef ef ef ef -ab -ab -ab -ab -ab -ab -ab -ab -ab -Op -RO -HQ -RO -Xt -ab -ab -ab -ab -ab -ab -ab -ab -ab -ef -ef -ef -ef -ef -ef -ef -ef -ef -ef ef ef ef @@ -42140,6 +42087,8 @@ ef ef ef ef +"} +(159,1,1) = {" ef ef ef @@ -42203,8 +42152,6 @@ ef ef ef ef -"} -(158,1,1) = {" ef ef ef @@ -42248,6 +42195,29 @@ ef ef ef ef +ab +bP +jy +jy +jy +vr +Bb +HP +Nb +Zm +Zm +Tq +Zm +Zm +Nb +HP +BR +Vq +jy +jy +jy +Jn +ab ef ef ef @@ -42312,36 +42282,6 @@ ef ef ef ef -bu -jK -ln -jk -uw -yM -qB -vB -OA -fV -Fx -fV -XN -Uo -jr -Uo -gl -gl -zT -Zp -bu -ef -ef -ef -ef -ef -ef -ef -ef -ef ef ef ef @@ -42389,6 +42329,8 @@ ef ef ef ef +"} +(160,1,1) = {" ef ef ef @@ -42445,8 +42387,6 @@ ef ef ef ef -"} -(159,1,1) = {" ef ef ef @@ -42497,6 +42437,29 @@ ef ef ef ef +ab +bJ +bJ +bJ +jI +ov +rR +vp +yJ +BO +fV +Fx +fV +BO +yJ +vp +nL +VM +jI +bJ +bJ +bJ +ab ef ef ef @@ -42554,27 +42517,6 @@ ef ef ef ef -bu -dX -lI -jn -ux -zA -fH -fH -BA -Dv -Fu -fV -LK -Ky -Ky -Ky -fH -fH -fH -Zr -bu ef ef ef @@ -42629,6 +42571,8 @@ ef ef ef ef +"} +(161,1,1) = {" ef ef ef @@ -42687,8 +42631,6 @@ ef ef ef ef -"} -(160,1,1) = {" ef ef ef @@ -42737,6 +42679,29 @@ ef ef ef ef +ab +bJ +bJ +bJ +dE +ov +rR +vp +yJ +BO +Ck +Fx +UV +BO +yJ +vp +nL +gP +bJ +bJ +bJ +bJ +ab ef ef ef @@ -42796,27 +42761,6 @@ ef ef ef ef -bu -dU -fH -jn -fH -fH -fH -fH -BA -fV -Fx -fV -LK -fH -fH -fH -fH -fH -fH -Zr -bu ef ef ef @@ -42869,6 +42813,8 @@ ef ef ef ef +"} +(162,1,1) = {" ef ef ef @@ -42929,8 +42875,6 @@ ef ef ef ef -"} -(161,1,1) = {" ef ef ef @@ -42977,6 +42921,29 @@ ef ef ef ef +ab +bQ +ec +ec +ec +oL +rR +vp +yJ +BO +fV +Fx +fV +BO +yJ +vp +nL +VL +ec +ec +ec +lU +ab ef ef ef @@ -43038,27 +43005,6 @@ ef ef ef ef -bu -dC -fH -fH -fH -fH -fH -fH -BA -fV -Fx -fV -LK -fH -fH -fH -fH -fH -fH -Zx -bu ef ef ef @@ -43109,6 +43055,8 @@ ef ef ef ef +"} +(163,1,1) = {" ef ef ef @@ -43171,8 +43119,6 @@ ef ef ef ef -"} -(162,1,1) = {" ef ef ef @@ -43217,6 +43163,29 @@ ef ef ef ef +ab +bZ +bJ +bJ +jL +ov +sk +ab +ab +zS +fV +Fx +fV +Ct +ab +ab +hR +VM +jL +bJ +bJ +ZN +ab ef ef ef @@ -43280,27 +43249,6 @@ ef ef ef ef -bu -dC -fH -qv -vb -zY -fH -fH -BA -fV -FL -UR -LK -fH -GN -GN -tC -tC -tC -CB -bu ef ef ef @@ -43349,6 +43297,8 @@ ef ef ef ef +"} +(164,1,1) = {" ef ef ef @@ -43413,8 +43363,6 @@ ef ef ef ef -"} -(163,1,1) = {" ef ef ef @@ -43457,6 +43405,29 @@ ef ef ef ef +ab +bJ +bJ +bJ +bJ +vx +Aq +Id +ab +Cl +fV +Fx +fV +LZ +ab +Id +Aq +yn +bJ +bJ +bJ +bJ +ab ef ef ef @@ -43522,27 +43493,6 @@ ef ef ef ef -bu -bG -lN -js -nz -nz -GV -XJ -OL -RQ -Fx -RQ -Zy -XJ -AL -nA -XJ -XJ -wh -oD -bu ef ef ef @@ -43589,6 +43539,8 @@ ef ef ef ef +"} +(165,1,1) = {" ef ef ef @@ -43655,8 +43607,6 @@ ef ef ef ef -"} -(164,1,1) = {" ef ef ef @@ -43697,6 +43647,29 @@ ef ef ef ef +ab +bX +eo +eo +eo +vC +Bh +Ig +ab +zU +fV +Fx +fV +Ji +ab +EQ +Bh +iL +eo +eo +eo +IQ +ab ef ef ef @@ -43763,29 +43736,6 @@ ef ef ef ef -ab -ab -ab -ab -ab -ab -ab -ab -ab -OX -fV -Fx -fV -ZD -ab -ab -ab -ab -ab -ab -ab -ab -ab ef ef ef @@ -43831,6 +43781,8 @@ ef ef ef ef +"} +(166,1,1) = {" ef ef ef @@ -43897,8 +43849,6 @@ ef ef ef ef -"} -(165,1,1) = {" ef ef ef @@ -43939,6 +43889,29 @@ ef ef ef ef +ab +fT +fT +fT +ka +rK +rK +nL +ab +LR +RV +Fx +RV +ZG +ab +rR +bJ +bJ +GE +bJ +bJ +bJ +ab ef ef ef @@ -44005,29 +43978,6 @@ ef ef ef ef -ab -fT -fT -fT -qy -rK -rK -nL -ab -UQ -fV -Fx -fV -Jc -ab -rR -bJ -bJ -qw -bJ -bJ -bJ -ab ef ef ef @@ -44073,6 +44023,8 @@ ef ef ef ef +"} +(167,1,1) = {" ef ef ef @@ -44139,8 +44091,6 @@ ef ef ef ef -"} -(166,1,1) = {" ef ef ef @@ -44181,6 +44131,29 @@ ef ef ef ef +ab +ab +ab +ab +ab +ab +ab +ab +ab +bu +Bp +TA +Bp +bu +ab +ab +ab +ab +ab +ab +ab +ab +ab ef ef ef @@ -44247,29 +44220,6 @@ ef ef ef ef -ab -xJ -jy -jy -jy -nZ -Tr -Hz -ab -zU -fV -Fx -fV -Ji -ab -ke -Tr -UP -jy -jy -jy -uA -ab ef ef ef @@ -44315,6 +44265,8 @@ ef ef ef ef +"} +(168,1,1) = {" ef ef ef @@ -44381,8 +44333,6 @@ ef ef ef ef -"} -(167,1,1) = {" ef ef ef @@ -44423,6 +44373,29 @@ ef ef ef ef +aQ +bu +do +vB +qB +vB +bu +vB +vB +qB +vB +vB +vB +qB +vB +vB +bu +vB +qB +vB +XQ +bu +XV ef ef ef @@ -44489,29 +44462,6 @@ ef ef ef ef -ab -bJ -bJ -bJ -bJ -nL -Aq -HD -ab -Cl -fV -Fx -fV -LZ -ab -HD -Aq -rR -bJ -bJ -bJ -bJ -ab ef ef ef @@ -44557,6 +44507,8 @@ ef ef ef ef +"} +(169,1,1) = {" ef ef ef @@ -44623,8 +44575,6 @@ ef ef ef ef -"} -(168,1,1) = {" ef ef ef @@ -44665,6 +44615,29 @@ ef ef ef ef +aQ +cc +dX +fV +fV +fV +fg +fV +fV +fV +fV +fV +fV +fV +fV +fV +fg +fV +fV +fV +Zr +cc +XV ef ef ef @@ -44731,29 +44704,6 @@ ef ef ef ef -ab -bZ -bJ -bJ -jL -om -AF -ab -ab -zS -fV -Fx -fV -Jc -ab -ab -ku -UZ -jL -bJ -bJ -ZN -ab ef ef ef @@ -44799,6 +44749,8 @@ ef ef ef ef +"} +(170,1,1) = {" ef ef ef @@ -44865,8 +44817,6 @@ ef ef ef ef -"} -(169,1,1) = {" ef ef ef @@ -44907,6 +44857,29 @@ ef ef ef ef +aQ +cc +dX +fV +fV +fV +cc +Ii +fV +fV +fV +fV +fV +fV +fV +Ii +cc +fV +fV +fV +Zr +cc +XV ef ef ef @@ -44973,29 +44946,6 @@ ef ef ef ef -ab -bI -jy -jy -jy -ve -rR -vp -yJ -BO -fV -Fx -fV -BO -yJ -vp -nL -Cx -jy -jy -jy -WQ -ab ef ef ef @@ -45041,6 +44991,8 @@ ef ef ef ef +"} +(171,1,1) = {" ef ef ef @@ -45107,8 +45059,6 @@ ef ef ef ef -"} -(170,1,1) = {" ef ef ef @@ -45149,6 +45099,29 @@ ef ef ef ef +aQ +bu +fz +lX +lX +lX +bu +Im +Im +Im +Im +bu +Im +Im +Im +Im +bu +lX +lX +lX +oD +bu +XV ef ef ef @@ -45215,29 +45188,6 @@ ef ef ef ef -ab -bJ -bJ -bJ -dE -or -rR -vp -yJ -BO -Ck -Fx -UV -BO -yJ -vp -nL -Vo -bJ -bJ -bJ -bJ -ab ef ef ef @@ -45283,6 +45233,8 @@ ef ef ef ef +"} +(172,1,1) = {" ef ef ef @@ -45349,8 +45301,6 @@ ef ef ef ef -"} -(171,1,1) = {" ef ef ef @@ -45391,6 +45341,29 @@ ef ef ef ef +aQ +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +XV ef ef ef @@ -45457,29 +45430,6 @@ ef ef ef ef -ab -bJ -bJ -bJ -jI -or -rR -vp -yJ -BO -fV -Fx -fV -BO -yJ -vp -nL -Vo -jI -bJ -bJ -bJ -ab ef ef ef @@ -45525,6 +45475,8 @@ ef ef ef ef +"} +(173,1,1) = {" ef ef ef @@ -45591,8 +45543,6 @@ ef ef ef ef -"} -(172,1,1) = {" ef ef ef @@ -45633,6 +45583,29 @@ ef ef ef ef +aQ +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +XV ef ef ef @@ -45699,29 +45672,6 @@ ef ef ef ef -ab -bP -jy -jy -jy -vr -Bb -HP -Nb -Zm -Zm -Tq -Zm -Zm -Nb -HP -BR -Vq -jy -jy -jy -Jn -ab ef ef ef @@ -45767,6 +45717,8 @@ ef ef ef ef +"} +(174,1,1) = {" ef ef ef @@ -45833,8 +45785,6 @@ ef ef ef ef -"} -(173,1,1) = {" ef ef ef @@ -45875,6 +45825,29 @@ ef ef ef ef +aQ +ci +fI +fI +fI +ci +ci +fI +fI +fI +ci +ci +ci +fI +fI +fI +ci +ci +fI +fI +fI +ci +XV ef ef ef @@ -45941,29 +45914,6 @@ ef ef ef ef -ab -bJ -bJ -bJ -jI -ov -rR -vp -yJ -BO -fV -Fx -fV -BO -yJ -vp -nL -VM -jI -bJ -bJ -bJ -ab ef ef ef @@ -46009,6 +45959,8 @@ ef ef ef ef +"} +(175,1,1) = {" ef ef ef @@ -46075,8 +46027,6 @@ ef ef ef ef -"} -(174,1,1) = {" ef ef ef @@ -46117,6 +46067,29 @@ ef ef ef ef +aT +cl +fL +mq +ra +aT +cl +fL +mq +ra +aT +TF +cl +fL +mq +ra +aT +cl +fL +mq +ra +aT +cl ef ef ef @@ -46183,29 +46156,6 @@ ef ef ef ef -ab -bJ -bJ -bJ -dE -ov -rR -vp -yJ -BO -Ck -Fx -UV -BO -yJ -vp -nL -gP -bJ -bJ -bJ -bJ -ab ef ef ef @@ -46251,6 +46201,8 @@ ef ef ef ef +"} +(176,1,1) = {" ef ef ef @@ -46317,8 +46269,6 @@ ef ef ef ef -"} -(175,1,1) = {" ef ef ef @@ -46425,29 +46375,6 @@ ef ef ef ef -ab -bQ -ec -ec -ec -oL -rR -vp -yJ -BO -fV -Fx -fV -BO -yJ -vp -nL -VL -ec -ec -ec -lU -ab ef ef ef @@ -46516,6 +46443,8 @@ ef ef ef ef +"} +(177,1,1) = {" ef ef ef @@ -46559,8 +46488,6 @@ ef ef ef ef -"} -(176,1,1) = {" ef ef ef @@ -46667,29 +46594,6 @@ ef ef ef ef -ab -bZ -bJ -bJ -jL -ov -sk -ab -ab -zS -fV -Fx -fV -Ct -ab -ab -hR -VM -jL -bJ -bJ -ZN -ab ef ef ef @@ -46781,6 +46685,8 @@ ef ef ef ef +"} +(178,1,1) = {" ef ef ef @@ -46801,8 +46707,6 @@ ef ef ef ef -"} -(177,1,1) = {" ef ef ef @@ -46909,29 +46813,6 @@ ef ef ef ef -ab -bJ -bJ -bJ -bJ -vx -Aq -Id -ab -Cl -fV -Fx -fV -LZ -ab -Id -Aq -yn -bJ -bJ -bJ -bJ -ab ef ef ef @@ -47043,11 +46924,11 @@ ef ef ef ef -"} -(178,1,1) = {" ef ef ef +"} +(179,1,1) = {" ef ef ef @@ -47151,29 +47032,6 @@ ef ef ef ef -ab -bX -eo -eo -eo -vC -Bh -Ig -ab -zU -fV -Fx -fV -Ji -ab -EQ -Bh -iL -eo -eo -eo -IQ -ab ef ef ef @@ -47285,8 +47143,6 @@ ef ef ef ef -"} -(179,1,1) = {" ef ef ef @@ -47313,6 +47169,8 @@ ef ef ef ef +"} +(180,1,1) = {" ef ef ef @@ -47393,29 +47251,6 @@ ef ef ef ef -ab -fT -fT -fT -ka -rK -rK -nL -ab -LR -RV -Fx -RV -ZG -ab -rR -bJ -bJ -GE -bJ -bJ -bJ -ab ef ef ef @@ -47527,8 +47362,6 @@ ef ef ef ef -"} -(180,1,1) = {" ef ef ef @@ -47578,6 +47411,8 @@ ef ef ef ef +"} +(181,1,1) = {" ef ef ef @@ -47635,29 +47470,6 @@ ef ef ef ef -ab -ab -ab -ab -ab -ab -ab -ab -ab -bu -Bp -TA -Bp -bu -ab -ab -ab -ab -ab -ab -ab -ab -ab ef ef ef @@ -47769,8 +47581,6 @@ ef ef ef ef -"} -(181,1,1) = {" ef ef ef @@ -47843,6 +47653,8 @@ ef ef ef ef +"} +(182,1,1) = {" ef ef ef @@ -47877,29 +47689,6 @@ ef ef ef ef -aQ -bu -do -vB -qB -vB -bu -vB -vB -qB -vB -vB -vB -qB -vB -vB -bu -vB -qB -vB -XQ -bu -XV ef ef ef @@ -48011,8 +47800,6 @@ ef ef ef ef -"} -(182,1,1) = {" ef ef ef @@ -48108,6 +47895,8 @@ ef ef ef ef +"} +(183,1,1) = {" ef ef ef @@ -48119,29 +47908,6 @@ ef ef ef ef -aQ -cc -dX -fV -fV -fV -Bp -fV -fV -fV -fV -fV -fV -fV -fV -fV -Bp -fV -fV -fV -Zr -cc -XV ef ef ef @@ -48253,8 +48019,6 @@ ef ef ef ef -"} -(183,1,1) = {" ef ef ef @@ -48361,29 +48125,6 @@ ef ef ef ef -aQ -cc -dX -fV -fV -fV -cc -Ii -fV -fV -fV -fV -fV -fV -fV -Ii -cc -fV -fV -fV -Zr -cc -XV ef ef ef @@ -48396,6 +48137,8 @@ ef ef ef ef +"} +(184,1,1) = {" ef ef ef @@ -48495,8 +48238,6 @@ ef ef ef ef -"} -(184,1,1) = {" ef ef ef @@ -48603,29 +48344,6 @@ ef ef ef ef -aQ -bu -fz -lX -lX -lX -bu -Im -Im -Im -Im -bu -Im -Im -Im -Im -bu -lX -lX -lX -oD -bu -XV ef ef ef @@ -48661,6 +48379,8 @@ ef ef ef ef +"} +(185,1,1) = {" ef ef ef @@ -48737,8 +48457,6 @@ ef ef ef ef -"} -(185,1,1) = {" ef ef ef @@ -48845,29 +48563,6 @@ ef ef ef ef -aQ -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -bu -XV ef ef ef @@ -48926,6 +48621,8 @@ ef ef ef ef +"} +(186,1,1) = {" ef ef ef @@ -48979,8 +48676,6 @@ ef ef ef ef -"} -(186,1,1) = {" ef ef ef @@ -49087,29 +48782,6 @@ ef ef ef ef -aQ -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -ci -XV ef ef ef @@ -49191,6 +48863,8 @@ ef ef ef ef +"} +(187,1,1) = {" ef ef ef @@ -49221,8 +48895,6 @@ ef ef ef ef -"} -(187,1,1) = {" ef ef ef @@ -49329,29 +49001,6 @@ ef ef ef ef -aQ -ci -fI -fI -fI -ci -ci -fI -fI -fI -ci -ci -ci -fI -fI -fI -ci -ci -fI -fI -fI -ci -XV ef ef ef @@ -49456,6 +49105,24 @@ ef ef ef ef +"} +(188,1,1) = {" +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef +ef ef ef ef @@ -49463,8 +49130,6 @@ ef ef ef ef -"} -(188,1,1) = {" ef ef ef @@ -49571,29 +49236,6 @@ ef ef ef ef -aT -cl -fL -mq -ra -aT -cl -fL -mq -ra -aT -TF -cl -fL -mq -ra -aT -cl -fL -mq -ra -aT -cl ef ef ef diff --git a/_maps/map_files/Lawanka_Outpost/LawankaOutpost.dmm b/_maps/map_files/Lawanka_Outpost/LawankaOutpost.dmm index c81af49b6e950..7f8f8b1c3335b 100644 --- a/_maps/map_files/Lawanka_Outpost/LawankaOutpost.dmm +++ b/_maps/map_files/Lawanka_Outpost/LawankaOutpost.dmm @@ -1732,9 +1732,6 @@ /obj/item/stack/sheet/metal, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/green/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 9 - }, /turf/open/floor/tile/dark/red2/corner{ dir = 1 }, @@ -12500,14 +12497,6 @@ }, /turf/open/floor/tile/blue/taupebluecorner, /area/lawankaoutpost/colony/robotics) -"kyc" = ( -/obj/effect/spawner/random/misc/structure/supplycrate, -/obj/machinery/atmospherics/pipe/simple/green/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 9 - }, -/turf/open/floor/tile/dark, -/area/lawankaoutpost/colony/operations_storage) "kyf" = ( /obj/effect/turf_decal/tracks/wheels/bloody{ dir = 4 @@ -62363,7 +62352,7 @@ oay mXv hQO hQO -kyc +hQO usj pMi wgw diff --git a/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm b/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm index 2a5ad5a420382..5a56b044cb46a 100644 --- a/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm +++ b/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm @@ -74,6 +74,14 @@ }, /turf/open/floor/mainship/stripesquare, /area/mainship/hallways/stern_hallway) +"adJ" = ( +/obj/effect/ai_node, +/obj/structure/disposalpipe/segment/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/mainship/hull/lower_hull) "afG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -1599,12 +1607,6 @@ /obj/item/book/manual/security_space_law, /turf/open/floor/wood, /area/mainship/command/corporateliaison) -"bWA" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 4 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "bXH" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -2220,8 +2222,7 @@ "cSx" = ( /obj/structure/table/mainship/nometal, /obj/machinery/light/mainship, -/obj/effect/spawner/random/engineering/glass, -/obj/effect/spawner/random/engineering/glass, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/mainship/orange, /area/mainship/engineering/engineering_workshop) "cSX" = ( @@ -2678,11 +2679,6 @@ "dpY" = ( /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"drx" = ( -/obj/machinery/light/mainship, -/obj/effect/ai_node, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "drW" = ( /obj/docking_port/stationary/ert/target{ id = "port_target"; @@ -3146,6 +3142,14 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/command/cic) +"dXO" = ( +/obj/machinery/door/airlock/mainship/generic{ + dir = 1; + name = "Bathroom" + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/crew_quarters/toilet) "dYs" = ( /obj/effect/ai_node, /turf/open/floor/carpet/side, @@ -3159,13 +3163,6 @@ /obj/structure/window/framed/mainship, /turf/open/floor/plating, /area/mainship/living/numbertwobunks) -"ean" = ( -/obj/machinery/door/airlock/mainship/evacuation{ - dir = 8 - }, -/obj/structure/sign/evac, -/turf/open/floor/mainship/mono, -/area/mainship/living/chapel) "eaH" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 @@ -3186,6 +3183,10 @@ }, /turf/open/floor/iron/kitchen, /area/mainship/living/grunt_rnr) +"ebu" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/crew_quarters/toilet) "ebE" = ( /obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/mainship/tcomms, @@ -3651,6 +3652,9 @@ /mob/living/simple_animal/mouse, /turf/open/floor/mainship/orange, /area/mainship/engineering/lower_engineering) +"eFo" = ( +/turf/open/floor/mainship/empty, +/area/mainship/living/tankerbunks) "eFA" = ( /obj/item/clothing/head/warning_cone, /turf/open/floor/mainship/mono, @@ -3891,6 +3895,13 @@ dir = 4 }, /area/mainship/squads/req) +"eXp" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "eYx" = ( /turf/open/floor/mainship/black{ dir = 1 @@ -4248,6 +4259,16 @@ /obj/effect/soundplayer, /turf/closed/wall/mainship/white, /area/mainship/medical/operating_room_two) +"fsZ" = ( +/obj/machinery/light/mainship{ + dir = 4 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "ftH" = ( /obj/structure/table/mainship/nometal, /obj/machinery/computer/station_alert, @@ -4493,6 +4514,17 @@ }, /turf/open/floor/grass, /area/mainship/living/starboard_garden) +"fFw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 8; + on = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "fFD" = ( /obj/machinery/holopad, /obj/effect/landmark/start/job/researcher, @@ -5195,10 +5227,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"guG" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "guJ" = ( /obj/machinery/light/mainship/small{ dir = 8 @@ -5758,6 +5786,16 @@ /obj/structure/sign/prop1, /turf/open/floor/mainship/yellow_cargo, /area/mainship/squads/general) +"hmO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "hnk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -5801,6 +5839,14 @@ }, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) +"hoP" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/crew_quarters/toilet) "hpx" = ( /obj/machinery/light/mainship{ dir = 8 @@ -5989,17 +6035,6 @@ }, /turf/open/floor/plating/platebotc, /area/mainship/medical/chemistry) -"hHH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/ai_node, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "hId" = ( /obj/structure/cable, /obj/machinery/power/smes/preset, @@ -6784,6 +6819,15 @@ }, /turf/open/floor/mainship/mono, /area/mainship/command/cic) +"iIe" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/ai_node, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "iIf" = ( /obj/effect/spawner/random/misc/structure/flavorvending/coffeeweighted, /turf/open/floor/mainship, @@ -7345,12 +7389,6 @@ "jxi" = ( /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_hallway) -"jxy" = ( -/obj/effect/spawner/random/misc/plant, -/turf/open/floor/mainship/silver{ - dir = 4 - }, -/area/mainship/living/chapel) "jzc" = ( /obj/structure/closet/emcloset, /obj/item/clothing/mask/gas, @@ -8892,6 +8930,10 @@ /obj/effect/soundplayer, /turf/closed/wall/mainship, /area/mainship/squads/general) +"lpt" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/living/tankerbunks) "lqS" = ( /obj/structure/window/framed/mainship/white, /obj/machinery/door/firedoor/mainship, @@ -9040,6 +9082,16 @@ /obj/effect/soundplayer, /turf/closed/wall/mainship, /area/mainship/squads/req) +"lyl" = ( +/obj/machinery/light/mainship{ + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/mainship/living/briefing) "lys" = ( /turf/open/floor/mainship/black/corner, /area/mainship/command/self_destruct) @@ -9310,9 +9362,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/engineering/engineering_workshop) -"lLe" = ( -/turf/open/floor/mainship/mono, -/area/crew_quarters/toilet) "lLR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -9421,6 +9470,13 @@ /obj/machinery/camera/autoname/mainship, /turf/open/floor/mainship/floor, /area/mainship/squads/general) +"lSb" = ( +/obj/machinery/light/mainship{ + dir = 1 + }, +/obj/machinery/tank_part_fabricator, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "lSr" = ( /obj/structure/window/framed/mainship, /turf/open/floor/mainship/floor, @@ -10282,6 +10338,13 @@ dir = 8 }, /area/mainship/engineering/engineering_workshop) +"mVL" = ( +/obj/structure/bed/chair/nometal{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/orange/full, +/area/mainship/living/briefing) "mVM" = ( /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) @@ -11292,10 +11355,6 @@ /obj/effect/soundplayer, /turf/closed/wall/mainship/white, /area/mainship/medical/upper_medical) -"omd" = ( -/obj/structure/sign/restroom, -/turf/open/floor/mainship/mono, -/area/crew_quarters/toilet) "omk" = ( /obj/machinery/light/mainship{ dir = 8 @@ -11760,12 +11819,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/engineering/engineering_workshop) -"oRH" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 5 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "oRM" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 @@ -11830,6 +11883,10 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/command/airoom) +"oWP" = ( +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/mainship/living/chapel) "oXs" = ( /obj/machinery/door/airlock/mainship/marine/general/engi, /obj/structure/disposalpipe/segment{ @@ -12174,10 +12231,6 @@ dir = 4 }, /area/mainship/medical/lower_medical) -"pmP" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/mainship/mono, -/area/crew_quarters/toilet) "pmY" = ( /obj/structure/table/mainship/nometal, /obj/machinery/computer/atmos_alert, @@ -12266,6 +12319,13 @@ /obj/item/clothing/head/warning_cone, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) +"pqQ" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "prY" = ( /obj/machinery/computer/camera_advanced/overwatch/req, /obj/machinery/light/mainship{ @@ -12776,6 +12836,16 @@ dir = 8 }, /area/mainship/squads/general) +"pVB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "pVY" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -12953,15 +13023,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/living/tankerbunks) -"qjm" = ( -/obj/effect/ai_node, -/obj/structure/disposalpipe/segment/corner{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/power/apc, -/turf/open/floor/mainship/mono, -/area/mainship/hull/lower_hull) "qjw" = ( /obj/structure/closet/bodybag, /obj/effect/decal/cleanable/blood, @@ -13222,13 +13283,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) -"qzN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 8; - on = 1 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "qAE" = ( /obj/machinery/light/mainship/small{ dir = 8 @@ -13569,10 +13623,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hull/lower_hull) -"qQD" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "qQF" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -13759,6 +13809,15 @@ dir = 1 }, /area/mainship/squads/general) +"rbo" = ( +/obj/machinery/light/mainship, +/obj/effect/ai_node, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "rbL" = ( /obj/structure/sign/evac, /turf/closed/wall/mainship, @@ -13878,12 +13937,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"rmQ" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "roD" = ( /obj/effect/landmark/start/job/requisitionsofficer, /obj/structure/bed/chair/office/dark, @@ -14094,13 +14147,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"rAj" = ( -/obj/structure/computerframe, -/obj/machinery/light/mainship{ - dir = 1 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "rAB" = ( /obj/machinery/door/firedoor/mainship{ dir = 2; @@ -14329,11 +14375,6 @@ /obj/effect/soundplayer, /turf/closed/wall/mainship, /area/mainship/living/cryo_cells) -"rRC" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/ai_node, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "rSg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14439,6 +14480,13 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/mainship/blue/full, /area/mainship/hallways/boxingring) +"rXB" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "rYr" = ( /obj/structure/cable, /obj/machinery/camera/autoname/mainship, @@ -14566,11 +14614,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/stern_hallway) -"ser" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/turf_decal/warning_stripes/thick, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "sfz" = ( /obj/machinery/power/apc/mainship{ dir = 8 @@ -14763,12 +14806,6 @@ dir = 1 }, /area/mainship/squads/req) -"svz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "swv" = ( /obj/machinery/door/firedoor/mainship{ dir = 2 @@ -15282,13 +15319,6 @@ /obj/machinery/computer/marine_card, /turf/open/floor/mainship/mono, /area/mainship/command/cic) -"tgh" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 4 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "tgi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/floor, @@ -15771,12 +15801,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/floor, /area/mainship/living/numbertwobunks) -"tIA" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 9 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "tIE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -15953,12 +15977,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/port_umbilical) -"tTg" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 10 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "tTm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -16097,17 +16115,6 @@ /obj/item/clothing/head/warning_cone, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"uaD" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/hallways/hangar) "ubh" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 8 @@ -16680,12 +16687,6 @@ }, /turf/open/floor/plating, /area/mainship/squads/req) -"uIX" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 6 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "uKk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -16759,6 +16760,18 @@ /obj/effect/landmark/start/job/cmo, /turf/open/floor/mainship/mono, /area/mainship/medical/upper_medical) +"uNt" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/ai_node, +/turf/open/floor/plating/plating_catwalk, +/area/mainship/hallways/hangar) "uNy" = ( /obj/machinery/light/mainship{ dir = 8 @@ -16858,12 +16871,6 @@ /obj/effect/turf_decal/warning_stripes/thick, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"uTG" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "uTM" = ( /obj/machinery/door/airlock/mainship/maint/free_access, /obj/structure/sign/hydro, @@ -17002,10 +17009,6 @@ /obj/structure/cable, /turf/open/floor/mainship/mono, /area/mainship/hull/lower_hull) -"vaX" = ( -/obj/machinery/light/mainship, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "vbf" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -17725,6 +17728,16 @@ /obj/structure/cable, /turf/open/floor/mainship/mono, /area/mainship/hallways/stern_hallway) +"wfG" = ( +/obj/effect/spawner/random/misc/plant, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8 + }, +/turf/open/floor/mainship/silver{ + dir = 4 + }, +/area/mainship/living/chapel) "wgn" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -17903,6 +17916,11 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/stern_hallway) +"wqZ" = ( +/obj/structure/sign/restroom, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/crew_quarters/toilet) "wrb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -18055,6 +18073,14 @@ /obj/machinery/telecomms/processor/preset_two, /turf/open/floor/mainship/tcomms, /area/mainship/command/telecomms) +"wAH" = ( +/obj/machinery/door/airlock/mainship/evacuation{ + dir = 8 + }, +/obj/structure/sign/evac, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/mainship/living/chapel) "wAZ" = ( /obj/structure/table/mainship/nometal, /obj/item/weapon/gun/shotgun/pump, @@ -18515,6 +18541,16 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/command/airoom) +"xdE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/ai_node, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "xdN" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/machinery/light/mainship{ @@ -19347,6 +19383,14 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/engineering/lower_engineering) +"xVO" = ( +/obj/machinery/light/mainship, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "xWh" = ( /obj/machinery/power/apc{ dir = 8 @@ -41414,7 +41458,7 @@ nOJ nOJ bBG rKn -qjm +adJ cbS cbS anW @@ -45530,8 +45574,8 @@ lvV whZ fZH xyn -jxy -lES +wfG +oWP rKT ttp ttp @@ -45788,7 +45832,7 @@ whZ kxh rbL kxh -ean +wAH kxh kxh kxh @@ -46045,7 +46089,7 @@ whZ hUf xjt nHq -cWu +uPn cWu cWu cWu @@ -49555,10 +49599,10 @@ gGg vvE vvE vvE -eTC -bEi -bEi -bEi +lyl +mVL +mVL +mVL wEZ wEZ xLZ @@ -54463,15 +54507,15 @@ kWG nZU kHN gcr -hHH -ozU -ozU -ozU -ozU -ozU +xdE +pVB +pVB +pVB +pVB +pVB rCU ozU -uaD +uNt jOm vgo vgo @@ -54720,13 +54764,13 @@ hFZ oZN tyN qOJ -qzN -tIA -uTG -uTG -uTG -tTg -svz +fFw +eFo +eFo +eFo +eFo +eFo +hmO gKv aoJ vAn @@ -54977,13 +55021,13 @@ lHG fku tyN vGQ -vGQ -rmQ -vGQ -vGQ -vGQ -ser -vGQ +rXB +eFo +eFo +eFo +eFo +eFo +pqQ xLu fAJ fAJ @@ -55233,14 +55277,14 @@ dpY dpY qvN tyN -rAj -vGQ -rmQ -qQD -vGQ -vGQ -guG -vaX +lSb +rXB +eFo +eFo +lpt +eFo +eFo +xVO xLu xJe iku @@ -55491,18 +55535,18 @@ aZM nPF tyN vGQ -vGQ -rmQ -vGQ -vGQ -vGQ -ser -vGQ +rXB +eFo +eFo +eFo +eFo +eFo +pqQ xLu sAI sAI -lLe -eSw +ebu +dXO ton cTx xvv @@ -55747,18 +55791,18 @@ vou vou vou vou -vGQ -rRC -oRH -bWA -bWA -tgh -uIX -drx +rCb +iIe +eFo +eFo +eFo +eFo +eFo +rbo xLu fAJ fAJ -omd +wqZ fAJ vyj cTx @@ -56006,16 +56050,16 @@ thc vou vGQ vGQ -vGQ -gKv -rCb -gKv -vGQ +eXp +fsZ +eXp +fsZ +eXp vGQ xLu xSi eSw -pmP +hoP fAJ aEk cTx diff --git a/_maps/map_files/Sulaco/TGS_Sulaco.dmm b/_maps/map_files/Sulaco/TGS_Sulaco.dmm index 83003bc90579c..aa8505ab7d6fa 100644 --- a/_maps/map_files/Sulaco/TGS_Sulaco.dmm +++ b/_maps/map_files/Sulaco/TGS_Sulaco.dmm @@ -1654,6 +1654,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/prison/plate, /area/sulaco/cargo/prep) +"aiT" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "aiW" = ( /obj/machinery/power/apc/mainship{ dir = 4 @@ -2087,6 +2097,12 @@ dir = 6 }, /area/sulaco/research) +"alR" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/closed/wall/mainship/gray, +/area/sulaco/hangar/storage) "alW" = ( /obj/structure/sign/prop2, /turf/open/floor/plating, @@ -9678,12 +9694,6 @@ /obj/structure/window/framed/mainship/gray/toughened/hull, /turf/open/floor/plating/platebotc, /area/sulaco/cargo) -"bOG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/mainship, -/obj/structure/cable, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "bOX" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -11061,6 +11071,15 @@ /obj/machinery/door/firedoor/mainship, /turf/open/floor/plating/platebotc, /area/mainship/shipboard/weapon_room) +"dDW" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/machinery/vending/engivend, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "dEd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ @@ -11754,9 +11773,6 @@ }, /turf/open/floor/prison, /area/sulaco/cargo) -"exf" = ( -/turf/open/floor/plating, -/area/sulaco/hangar/storage) "eyu" = ( /obj/machinery/door/airlock/mainship/generic{ dir = 2 @@ -11787,6 +11803,16 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk/prison, /area/sulaco/hallway/evac) +"eAJ" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/mainship/mech{ + id = "mech_shutters_3" + }, +/obj/machinery/door/firedoor/mainship, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "eAL" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1, /turf/open/floor/prison, @@ -12141,21 +12167,6 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/command/self_destruct) -"eUP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/marine) "eVy" = ( /obj/machinery/door/airlock/mainship/engineering/CSEoffice{ dir = 2 @@ -12340,12 +12351,6 @@ /obj/effect/spawner/random/misc/folder/nooffset, /turf/open/floor/wood, /area/sulaco/liaison) -"fjy" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "fjF" = ( /obj/machinery/vending/medical/shipside, /turf/open/floor/prison/whitegreen/corner, @@ -12989,11 +12994,6 @@ }, /turf/open/floor/prison, /area/sulaco/maintenance/upperdeck_AIcore_maint) -"gdt" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/machinery/vending/engivend, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "gdR" = ( /obj/machinery/light/mainship{ dir = 4 @@ -13082,6 +13082,7 @@ /obj/item/stack/sheet/metal/large_stack, /obj/item/stack/sheet/plasteel/large_stack, /obj/item/lightreplacer, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/prison/red{ dir = 6 }, @@ -13409,6 +13410,19 @@ dir = 8 }, /area/sulaco/medbay/west) +"gGS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "gHU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison/bright_clean, @@ -13725,6 +13739,21 @@ /obj/item/circuitboard/machine/smes, /turf/open/floor/prison, /area/sulaco/hangar/storage) +"hbA" = ( +/obj/machinery/power/apc/mainship, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "hbH" = ( /obj/structure/cable, /obj/effect/ai_node, @@ -14105,6 +14134,17 @@ dir = 8 }, /area/sulaco/medbay/west) +"hAn" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/tank_part_fabricator, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "hAO" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 1 @@ -14343,14 +14383,6 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk/prison, /area/sulaco/hallway/lower_foreship) -"hMG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/warning_stripes/thick/corner, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "hNu" = ( /obj/machinery/door/poddoor/railing{ dir = 1; @@ -14516,11 +14548,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/prison, /area/sulaco/hallway/lower_foreship) -"hYd" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "hYo" = ( /obj/machinery/light/mainship{ dir = 8 @@ -14586,11 +14613,6 @@ dir = 5 }, /area/sulaco/research) -"iaR" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/machinery/vending/tool, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "iaY" = ( /obj/structure/closet/crate/internals, /turf/open/floor/prison, @@ -15080,15 +15102,6 @@ }, /turf/open/floor/prison, /area/sulaco/cargo/office) -"iGj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "iGB" = ( /obj/structure/table/mainship/nometal, /turf/open/floor/prison/red/full{ @@ -15406,11 +15419,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/prison, /area/sulaco/engineering/engine_monitoring) -"iVJ" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "iVT" = ( /obj/structure/window/framed/mainship/gray/toughened, /obj/machinery/door/poddoor/shutters/opened{ @@ -15661,13 +15669,6 @@ /obj/structure/cable, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar) -"jiY" = ( -/obj/machinery/door/firedoor/mainship, -/obj/machinery/door/poddoor/mainship/mech{ - id = "mech_shutters_3" - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "jlB" = ( /obj/machinery/door/firedoor/mainship{ dir = 2 @@ -17519,13 +17520,6 @@ /obj/item/reagent_containers/food/snacks/protein_pack, /turf/open/floor/prison/kitchen, /area/sulaco/cafeteria) -"lBh" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/structure/computer3frame, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "lBU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -17601,6 +17595,9 @@ /obj/machinery/atmospherics/pipe/simple/yellow/hidden, /turf/open/floor/prison/whitegreen/corner, /area/sulaco/medbay/west) +"lFo" = ( +/turf/open/floor/mainship/empty, +/area/sulaco/hangar/storage) "lFQ" = ( /obj/machinery/air_alarm{ dir = 1 @@ -17700,6 +17697,18 @@ /obj/effect/turf_decal/warning_stripes/thick/corner, /turf/open/floor/plating, /area/sulaco/hangar) +"lML" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/structure/rack, +/obj/machinery/light/mainship/small{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "lMO" = ( /obj/effect/decal/cleanable/cobweb{ dir = 8 @@ -18879,6 +18888,18 @@ dir = 4 }, /area/sulaco/marine) +"npC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/hidden{ + dir = 1 + }, +/turf/open/floor/prison, +/area/sulaco/marine) "nqJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/dropship_equipment/cas/weapon/minirocket_pod, @@ -19059,6 +19080,16 @@ }, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar) +"nGd" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/firedoor/mainship, +/obj/machinery/door/poddoor/mainship/mech{ + id = "mech_shutters_3" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "nGG" = ( /obj/machinery/door_control/mainship/tcomms{ dir = 8; @@ -19531,12 +19562,6 @@ /obj/effect/spawner/random/misc/gnome/fiftyfifty, /turf/open/floor/plating, /area/sulaco/maintenance/upperdeck_north_maint) -"ojX" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "okh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/mainship{ @@ -19720,13 +19745,6 @@ /obj/structure/prop/mainship/mapping_computer, /turf/open/floor/mainship/tcomms, /area/mainship/command/self_destruct) -"ovo" = ( -/obj/machinery/door/poddoor/mainship/mech{ - id = "mech_shutters_3" - }, -/obj/machinery/door/firedoor/mainship, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "ovJ" = ( /obj/machinery/holopad{ active_power_usage = 130; @@ -19880,6 +19898,16 @@ }, /turf/open/floor/tile/hydro, /area/sulaco/hydro) +"oEr" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "oEw" = ( /obj/structure/window/framed/mainship/gray/toughened, /turf/open/floor/prison, @@ -20056,19 +20084,6 @@ dir = 1 }, /area/sulaco/medbay) -"oNf" = ( -/obj/structure/cable, -/obj/machinery/power/apc/mainship{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "oNr" = ( /obj/machinery/camera/autoname{ dir = 1 @@ -20968,13 +20983,6 @@ dir = 10 }, /area/space) -"pUq" = ( -/obj/structure/cable, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "pVy" = ( /turf/open/floor/mainship/stripesquare, /area/sulaco/hangar) @@ -21247,22 +21255,6 @@ }, /turf/open/floor/freezer, /area/sulaco/cap_office) -"qsy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/sulaco/hangar/storage) "qtj" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -21321,6 +21313,15 @@ /obj/effect/ai_node, /turf/open/floor/prison, /area/sulaco/marine) +"qwj" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "qxr" = ( /turf/open/floor/plating, /area/mainship/command/self_destruct) @@ -22370,6 +22371,17 @@ dir = 8 }, /area/mainship/living/basketball) +"rNf" = ( +/obj/structure/cable, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "rNq" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 1 @@ -24401,6 +24413,13 @@ }, /turf/open/floor/prison, /area/sulaco/cargo/prep) +"uiA" = ( +/obj/effect/turf_decal/warning_stripes/thick/corner{ + dir = 4 + }, +/obj/machinery/gear/vehicle, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "uiN" = ( /obj/structure/table/mainship/nometal, /obj/item/weapon/gun/rifle/m412, @@ -24507,6 +24526,15 @@ }, /turf/open/floor/plating, /area/sulaco/hangar) +"uoJ" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/machinery/vending/tool, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "uoT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ @@ -25823,14 +25851,6 @@ /obj/structure/window/framed/mainship/gray/toughened, /turf/open/floor/plating/platebotc, /area/sulaco/engineering/atmos) -"war" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/structure/rack, -/obj/machinery/light/mainship/small{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "waM" = ( /obj/machinery/quick_vendor/beginner, /turf/open/floor/prison/green{ @@ -26400,6 +26420,15 @@ "wTo" = ( /turf/open/floor/prison/arrow/clean, /area/mainship/command/self_destruct) +"wTy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/warning_stripes/thick/corner, +/obj/machinery/gear/vehicle, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "wTC" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ dir = 4 @@ -26639,6 +26668,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/sulaco/engineering/storage) +"xiF" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/sulaco/hangar/storage) "xjl" = ( /obj/structure/window/framed/mainship/gray/toughened, /obj/machinery/door/poddoor/shutters/opened/medbay{ @@ -27029,6 +27062,15 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/sulaco/hallway/lower_main_hall) +"xLQ" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "xMC" = ( /obj/structure/window/framed/mainship/gray/toughened, /obj/machinery/door/poddoor/opened{ @@ -48223,7 +48265,7 @@ oRM buz anw cAK -eUP +npC qMk jUJ aLf @@ -67247,7 +67289,7 @@ lRu bYM gNn aWo -qsy +bWI lOC lOC peL @@ -69037,11 +69079,11 @@ bFa bFa kOr bYM -bYM -bYM -jiY -jiY -ovo +alR +alR +nGd +nGd +eAJ bYM bYM bYM @@ -69293,13 +69335,13 @@ vDU vDU mDu kOr -iaR -exf -exf -exf -exf -exf -lBh +uoJ +lFo +lFo +lFo +lFo +lFo +hAn sDv bYM qpD @@ -69550,13 +69592,13 @@ aaa aaa nzi ykt -iVJ -exf -exf -exf -exf -exf -lBh +qwj +lFo +lFo +lFo +lFo +lFo +oEr lEr bYM aeL @@ -69807,16 +69849,16 @@ aaa aaa nzi ykt -hYd -exf -exf -exf -exf -exf -fjy +xLQ +lFo +lFo +xiF +lFo +lFo +oEr ebs bYM -bOG +jYO wTC jJa bYM @@ -70064,13 +70106,13 @@ aaa aaa nzi ykt -gdt -exf -exf -exf -exf -exf -fjy +dDW +lFo +lFo +lFo +lFo +lFo +oEr mYh fAk kzO @@ -70321,13 +70363,13 @@ aaa aaa nzi kOr -war -exf -exf -exf -exf -exf -iGj +lML +lFo +lFo +lFo +lFo +lFo +gGS pWS rCY tkV @@ -70578,13 +70620,13 @@ aaa aaa nzi kOr -kOr -kOr -ojX -ojX -oNf -pUq -hMG +uiA +aiT +aiT +aiT +hbA +rNf +wTy sUF bPy vqR @@ -70834,8 +70876,8 @@ aaa aaa aaa tZr -vDU -mDu +cyv +cyv kOr kOr kOr @@ -71090,10 +71132,10 @@ aaa aaa aaa aaa -aaa -aaa tZr vDU +vDU +vDU mDu mDu mDu diff --git a/_maps/map_files/Theseus/TGS_Theseus.dmm b/_maps/map_files/Theseus/TGS_Theseus.dmm index 81c7030e379da..9cf288e65b606 100644 --- a/_maps/map_files/Theseus/TGS_Theseus.dmm +++ b/_maps/map_files/Theseus/TGS_Theseus.dmm @@ -1435,10 +1435,6 @@ "arQ" = ( /turf/closed/wall/mainship/research/containment/wall/north, /area/mainship/medical/medical_science) -"arR" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/mainship/hallways/hangar) "arU" = ( /obj/machinery/light/mainship{ dir = 1 @@ -7594,6 +7590,7 @@ /area/mainship/squads/alpha) "cKR" = ( /obj/structure/table/mainship/nometal, +/obj/item/stack/sheet/glass/glass/large_stack, /turf/open/floor/mainship/blue/full, /area/mainship/command/cic) "cLn" = ( @@ -7965,18 +7962,6 @@ dir = 9 }, /area/mainship/living/officer_rnr) -"dus" = ( -/obj/structure/closet/secure_closet/guncabinet/mp_armory, -/obj/item/weapon/gun/rifle/standard_lmg, -/obj/item/ammo_magazine/standard_lmg, -/obj/item/ammo_magazine/standard_lmg, -/obj/item/weapon/gun/smg/m25, -/obj/item/ammo_magazine/smg/m25, -/obj/item/ammo_magazine/smg/m25, -/obj/item/ammo_magazine/smg/m25, -/obj/item/ammo_magazine/smg/m25, -/turf/open/space/basic, -/area/space) "dvk" = ( /obj/structure/closet, /obj/item/toy/plush/slime, @@ -9462,6 +9447,10 @@ /obj/structure/closet/toolcloset, /turf/open/floor/mainship/cargo, /area/mainship/hallways/port_hallway) +"fIY" = ( +/obj/machinery/tank_part_fabricator, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "fKd" = ( /obj/machinery/microwave, /obj/structure/table/mainship/nometal, @@ -9513,6 +9502,10 @@ /obj/item/tool/pen, /turf/open/floor/mainship/orange, /area/mainship/hallways/repair_bay) +"fOs" = ( +/obj/machinery/camera/autoname/mainship, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "fOx" = ( /obj/structure/flora/pottedplant/twentyone, /turf/open/floor/mainship/green{ @@ -10097,6 +10090,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) +"gKj" = ( +/obj/machinery/vending/tool, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "gLI" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced/windowstake{ @@ -10833,18 +10830,6 @@ }, /turf/open/floor/tile/dark, /area/mainship/engineering/lower_engine_monitoring) -"hQt" = ( -/obj/structure/table/mainship/nometal, -/obj/machinery/reagentgrinder, -/obj/item/stack/sheet/mineral/phoron, -/obj/item/stack/sheet/mineral/phoron, -/obj/structure/cable, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/glass/beaker/large, -/turf/open/floor/mainship/sterile/side{ - dir = 1 - }, -/area/mainship/medical/chemistry) "hSb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -12572,12 +12557,7 @@ /turf/open/floor/mainship/mono, /area/mainship/engineering/engine_core) "kMC" = ( -/obj/structure/computer3frame, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/effect/turf_decal/warning_stripes/thin, -/turf/open/floor/mainship/mono, +/turf/open/floor/mainship/empty, /area/mainship/hallways/hangar) "kMY" = ( /turf/open/floor/mainship/orange, @@ -14781,6 +14761,10 @@ dir = 1 }, /area/mainship/command/cic) +"ofQ" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "ofY" = ( /obj/structure/cable, /obj/machinery/door/airlock/mainship/command/FCDRoffice, @@ -15323,6 +15307,13 @@ /obj/machinery/door/firedoor/mainship{ dir = 2 }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "pbV" = ( @@ -16071,14 +16062,6 @@ /obj/machinery/cloning/vats, /turf/open/floor/mainship/sterile/side, /area/mainship/medical/lower_medical) -"qmA" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/machinery/vending/tool, -/obj/effect/turf_decal/warning_stripes/thin, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "qmJ" = ( /obj/machinery/door_control/mainship/mech{ dir = 1 @@ -17436,14 +17419,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/grunt_rnr) -"ssC" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/item/clothing/head/warning_cone, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "stM" = ( /obj/structure/bed, /obj/effect/landmark/start/job/pilotofficer, @@ -17818,6 +17793,13 @@ }, /turf/open/floor/mainship/floor, /area/mainship/living/tankerbunks) +"tea" = ( +/obj/machinery/power/apc/mainship{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "ten" = ( /obj/structure/bed, /obj/item/bedsheet/blue, @@ -18647,6 +18629,19 @@ /obj/machinery/holopad, /turf/open/floor/mainship/floor, /area/mainship/squads/delta) +"utq" = ( +/obj/structure/table/mainship/nometal, +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/phoron, +/obj/item/stack/sheet/mineral/phoron, +/obj/structure/cable, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/glass/beaker/large, +/obj/machinery/power/apc/mainship, +/turf/open/floor/mainship/sterile/side{ + dir = 1 + }, +/area/mainship/medical/chemistry) "uuf" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -19088,13 +19083,6 @@ "vby" = ( /turf/open/floor/plating/plating_catwalk, /area/mainship/squads/req) -"vcZ" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "ven" = ( /obj/machinery/light/mainship{ dir = 8 @@ -19970,14 +19958,6 @@ /obj/structure/window/framed/mainship, /turf/open/floor/plating, /area/mainship/hallways/bow_hallway) -"wJA" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/item/clothing/head/warning_cone, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "wKn" = ( /turf/open/floor/mainship/red/corner{ dir = 8 @@ -20329,10 +20309,6 @@ /obj/machinery/vending/armor_supply, /turf/open/floor/mainship/mono, /area/mainship/squads/delta) -"xqY" = ( -/obj/machinery/camera/autoname/mainship, -/turf/open/floor/plating, -/area/mainship/hallways/hangar) "xsH" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -44695,7 +44671,7 @@ cuH oer bqC bgb -lvI +gKj xQe mJs gfg @@ -44952,7 +44928,7 @@ yaR oer lyr bgb -lvI +fIY xQe pcr lvI @@ -45459,11 +45435,11 @@ aaa aai rbR bgb -arR -blA -blA -blA -blA +bgb +kMC +kMC +kMC +kMC kMC paZ iIi @@ -45716,12 +45692,12 @@ aaa aai aak bgb -blA -blA -blA -blA -blA -ssC +bgb +kMC +kMC +kMC +kMC +kMC paZ sem xQe @@ -45973,12 +45949,12 @@ aaa aai rbR bgb -xqY -blA -blA -blA -blA -vcZ +bgb +fOs +kMC +ofQ +kMC +kMC paZ sem xQe @@ -46230,12 +46206,12 @@ aaa aai tDH bgb -blA -blA -blA -blA -blA -wJA +bgb +kMC +kMC +kMC +kMC +kMC paZ sem xQe @@ -46487,12 +46463,12 @@ aaa aai tDH bgb -blA -blA -blA -blA -blA -qmA +bgb +kMC +kMC +kMC +kMC +kMC paZ uDz bPG @@ -48833,7 +48809,7 @@ nja blA esw lOP -lvI +tea bRE bRE tWq @@ -51358,7 +51334,7 @@ aaa aaa aaa aaa -dus +aaa aaa aaa aaa @@ -54470,7 +54446,7 @@ xCj yea pdH nga -hQt +utq qgb esS blP diff --git a/_maps/map_files/Whiskey_Outpost/Whiskey_Outpost_v2.dmm b/_maps/map_files/Whiskey_Outpost/Whiskey_Outpost_v2.dmm index da4663015ee77..bd018dcc180a4 100644 --- a/_maps/map_files/Whiskey_Outpost/Whiskey_Outpost_v2.dmm +++ b/_maps/map_files/Whiskey_Outpost/Whiskey_Outpost_v2.dmm @@ -7055,11 +7055,6 @@ /obj/structure/barricade/plasteel, /turf/open/floor/plating/warning, /area/whiskey_outpost/outside/west) -"Rb" = ( -/obj/structure/barricade/metal, -/obj/structure/barricade/metal, -/turf/open/floor/plating/warning, -/area/whiskey_outpost/outside/west) "Rc" = ( /obj/structure/flora/tree/jungle, /turf/open/ground/jungle, @@ -15144,7 +15139,7 @@ Hr hm hm Xh -Rb +QX Hm Qu In diff --git a/_maps/map_files/combat_patrol_base/combat_patrol_base.dmm b/_maps/map_files/combat_patrol_base/combat_patrol_base.dmm index 1b5e92d7b2092..545664fc6b773 100644 --- a/_maps/map_files/combat_patrol_base/combat_patrol_base.dmm +++ b/_maps/map_files/combat_patrol_base/combat_patrol_base.dmm @@ -986,13 +986,6 @@ dir = 5 }, /area/mainship/patrol_base/som) -"pM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/som) "pS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/layer1, /turf/open/floor/mainship/purple{ @@ -1190,7 +1183,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base/som) "sd" = ( @@ -2509,12 +2501,6 @@ /obj/structure/sign/double/map/left, /turf/closed/wall/mainship/outer/reinforced, /area/mainship/patrol_base) -"Lq" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base/som) "Lz" = ( /obj/machinery/telecomms/receiver/preset_right/som, /turf/open/floor/mainship, @@ -3857,7 +3843,7 @@ VK cA OT OT -pM +ZQ sc OT OT @@ -4470,7 +4456,7 @@ OT OT OT OT -Lq +EH JJ pT pT diff --git a/_maps/map_files/debugdalus/tgs_debugdalus.dmm b/_maps/map_files/debugdalus/tgs_debugdalus.dmm index 550a7094a7a92..320ad388b2d83 100644 --- a/_maps/map_files/debugdalus/tgs_debugdalus.dmm +++ b/_maps/map_files/debugdalus/tgs_debugdalus.dmm @@ -305,12 +305,6 @@ /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) "abo" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mainship, -/area/mainship/hallways/exoarmor) -"abp" = ( /obj/structure/rack, /obj/item/tool/weldingtool, /obj/item/tool/weldpack, @@ -320,7 +314,7 @@ /obj/item/clothing/glasses/welding, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) -"abq" = ( +"abp" = ( /obj/structure/rack, /obj/item/storage/backpack/marine/engineerpack, /obj/item/tool/weldingtool, @@ -330,10 +324,14 @@ /obj/item/clothing/glasses/welding, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) -"abr" = ( +"abq" = ( /obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) +"abr" = ( +/obj/machinery/vending/engivend, +/turf/open/floor/mainship, +/area/mainship/hallways/exoarmor) "abs" = ( /obj/machinery/vending/tool, /turf/open/floor/mainship, @@ -442,6 +440,9 @@ dir = 1 }, /obj/structure/cable, +/obj/structure/rack, +/obj/item/stack/sheet/glass/phoronrglass, +/obj/item/stack/sheet/glass/phoronrglass, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) "abU" = ( @@ -2325,6 +2326,13 @@ }, /turf/open/floor/mainship, /area/mainship/squads/general) +"cXg" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "djH" = ( /obj/vehicle/ridden/powerloader, /obj/machinery/landinglight/cas, @@ -2341,6 +2349,10 @@ "dwY" = ( /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"dLM" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "dPu" = ( /obj/machinery/vending/cargo_supply, /turf/open/floor/mainship, @@ -2443,6 +2455,13 @@ /area/mainship/squads/general) "gOE" = ( /obj/machinery/light, +/obj/structure/rack, +/obj/item/stack/sheet/glass/reinforced{ + amount = 50 + }, +/obj/item/stack/sheet/glass/reinforced{ + amount = 50 + }, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) "gUp" = ( @@ -2467,11 +2486,24 @@ }, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"hSf" = ( +/obj/structure/rack, +/obj/item/stack/sheet/plasteel/large_stack, +/obj/item/stack/sheet/plasteel/large_stack, +/turf/open/floor/mainship, +/area/mainship/hallways/exoarmor) "ieJ" = ( /obj/structure/table/mainship, /obj/item/pizzabox/margherita, /turf/open/floor/mainship, /area/mainship/living/cryo_cells) +"iiS" = ( +/obj/structure/cable, +/obj/structure/rack, +/obj/item/stack/sheet/metal/large_stack, +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/mainship, +/area/mainship/hallways/exoarmor) "ivw" = ( /obj/machinery/landinglight/alamo{ dir = 8 @@ -2498,6 +2530,13 @@ /obj/structure/cable, /turf/open/floor/mainship, /area/mainship/shipboard/weapon_room) +"jxZ" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "jPH" = ( /obj/machinery/bot/cleanbot, /turf/open/floor/mainship, @@ -2527,8 +2566,20 @@ dir = 1 }, /obj/structure/cable, +/obj/structure/rack, +/obj/item/stack/sheet/wood/large_stack, +/obj/item/stack/sheet/wood/large_stack, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) +"kEg" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "kEy" = ( /obj/machinery/light{ dir = 4 @@ -2544,6 +2595,10 @@ /obj/structure/dropship_equipment/cas/weapon/bomb_pod, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"kVr" = ( +/obj/machinery/gear/vehicle, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "lcb" = ( /obj/structure/cable, /obj/machinery/camera/autoname/mainship, @@ -2559,6 +2614,14 @@ }, /turf/open/floor/mainship, /area/mainship/medical/medical_science) +"leQ" = ( +/obj/structure/rack, +/obj/item/stack/sheet/glass/glass/large_stack, +/obj/item/stack/sheet/glass/glass/large_stack, +/obj/item/stack/sheet/glass/reinforced, +/obj/item/stack/sheet/glass/reinforced, +/turf/open/floor/mainship, +/area/mainship/hallways/exoarmor) "ljg" = ( /obj/effect/turf_decal/warning_stripes/box/small, /obj/effect/turf_decal/warning_stripes/box/small{ @@ -2596,6 +2659,10 @@ }, /turf/open/floor/mainship, /area/mainship/squads/req) +"lGu" = ( +/obj/machinery/tank_part_fabricator, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "lGz" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/machinery/camera/autoname/mainship{ @@ -2608,6 +2675,14 @@ /obj/structure/cable, /turf/open/floor/mainship, /area/mainship/medical/lower_medical) +"mfs" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/light, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "mlP" = ( /obj/machinery/vending/nanomed, /obj/structure/cable, @@ -2712,6 +2787,9 @@ /obj/machinery/landinglight/tadpole, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"qWN" = ( +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "rmh" = ( /obj/structure/cable, /obj/machinery/landinglight/alamo{ @@ -2742,6 +2820,10 @@ "rDw" = ( /turf/open/floor/mainship, /area/mainship/command/telecomms) +"rMD" = ( +/obj/machinery/vending/tool, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "rPl" = ( /obj/machinery/landinglight/tadpole{ dir = 8 @@ -2759,6 +2841,10 @@ }, /turf/open/floor/mainship, /area/mainship/command/cic) +"skH" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "soy" = ( /obj/structure/cable, /obj/machinery/camera/autoname/mainship{ @@ -2769,6 +2855,13 @@ }, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"sru" = ( +/obj/structure/table/mainship, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "syF" = ( /obj/structure/cable, /obj/machinery/landinglight/alamo{ @@ -2780,6 +2873,10 @@ /obj/machinery/floodlight/landing/hq, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"sDt" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "tae" = ( /obj/machinery/camera/autoname/mainship{ dir = 4 @@ -2848,6 +2945,13 @@ /obj/machinery/computer/orbital_cannon_console, /turf/open/floor/mainship, /area/mainship/shipboard/weapon_room) +"uyq" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "vsI" = ( /obj/structure/table/mainship, /obj/item/storage/donut_box, @@ -2887,6 +2991,12 @@ /obj/effect/turf_decal/warning_stripes/box/small, /turf/open/floor/mainship, /area/mainship/squads/general) +"wlt" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "wpk" = ( /obj/structure/ship_ammo/cas/minirocket, /obj/machinery/light{ @@ -2919,6 +3029,12 @@ /obj/vehicle/unmanned/droid/scout, /turf/open/floor/mech_bay_recharge_floor, /area/mainship/command/telecomms) +"xiw" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship, +/area/mainship/hallways/exoarmor) "xot" = ( /obj/structure/cable, /obj/effect/ai_node, @@ -3160,16 +3276,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +bgb +bgb +bgb +bgb +bgb +bgb +bgb +bgb +bgb aaa aaa aaa @@ -3220,16 +3336,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +lGu +kVr +wlt +kEg +wlt +wlt +wlt +kVr +bgb aaa aaa aaa @@ -3280,16 +3396,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +dwY +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3340,16 +3456,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +dwY +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3400,16 +3516,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +sru +cXg +qWN +qWN +sDt +qWN +qWN +mfs +bgb aaa aaa aaa @@ -3460,16 +3576,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +skH +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3520,16 +3636,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +rMD +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3580,16 +3696,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +dLM +kVr +jxZ +jxZ +jxZ +jxZ +jxZ +kVr +bgb aaa aaa aaa @@ -3644,9 +3760,9 @@ bgb bgb bgb bgb -bgb -bgb -bgb +dwY +dwY +dwY bgb bgb bgb @@ -3703,9 +3819,9 @@ oQb dwY dwY dwY +oQb dwY dwY -oQb dwY dwY dwY @@ -5925,9 +6041,9 @@ aaa aaa aea abn -xTV -xTV -xTV +xiw +leQ +hSf aea acn adA @@ -6047,7 +6163,7 @@ aea abo xTV xTV -abU +iiS aea aco acu diff --git a/_maps/map_files/deltastation/deltastation.dmm b/_maps/map_files/deltastation/deltastation.dmm index cdd5b7a339872..e8d2a8207712c 100644 --- a/_maps/map_files/deltastation/deltastation.dmm +++ b/_maps/map_files/deltastation/deltastation.dmm @@ -8010,7 +8010,6 @@ /area/deltastation/service/library/abandoned) "bFo" = ( /obj/effect/turf_decal/trimline/purple/filled/warning, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable, /turf/open/floor/iron/white, @@ -14703,9 +14702,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "dcL" = ( @@ -15676,9 +15673,6 @@ /turf/open/floor/iron/dark, /area/deltastation/ai_monitored/turret_protected/aisat_interior) "dmx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/machinery/door/airlock/mainship/generic{ name = "Cabin 2" }, @@ -16494,12 +16488,10 @@ /turf/open/floor/iron, /area/deltastation/security/brig) "dvl" = ( -/obj/machinery/meter, /obj/machinery/door/window{ dir = 8 }, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/visible, /obj/effect/turf_decal/siding/dark_red{ dir = 8 }, @@ -19189,6 +19181,7 @@ /area/deltastation/engineering/atmos/hfr_room) "dUy" = ( /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, +/obj/machinery/atmospherics/components/unary/outlet_injector, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "dUB" = ( @@ -19767,8 +19760,8 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, /turf/open/floor/iron/white/side{ dir = 8 @@ -20643,8 +20636,10 @@ /area/deltastation/command/heads_quarters/rd) "ehW" = ( /obj/structure/prop/mainship/supermatter, -/obj/effect/mapping_helpers/simple_pipes/cyan/visible/layer2, -/obj/effect/mapping_helpers/simple_pipes/green/visible/layer4, +/obj/machinery/atmospherics/pipe/manifold/green/visible/layer3, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer1{ + dir = 1 + }, /turf/open/floor/engine, /area/deltastation/engineering/supermatter) "ehZ" = ( @@ -25146,7 +25141,6 @@ /area/deltastation/maintenance/solars/port/fore) "fcu" = ( /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/effect/landmark/weed_node, /obj/effect/ai_node, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -27166,7 +27160,6 @@ /turf/open/floor/iron, /area/deltastation/service/kitchen) "fxi" = ( -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/structure/prop/mainship/gelida/propserver, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 @@ -30717,11 +30710,18 @@ /turf/open/floor/plating, /area/deltastation/maintenance/department/chapel) "ghi" = ( -/obj/structure/window/framed/colony/reinforced, -/obj/structure/cable, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, -/turf/open/floor/plating, -/area/deltastation/science/server) +/obj/effect/forcefield{ + desc = "You can't get in. Heh."; + name = "Blocker" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{ + dir = 6 + }, +/turf/open/floor/engine, +/area/deltastation/engineering/supermatter) "ghk" = ( /obj/effect/spawner/random/misc/structure/directional_window, /obj/effect/spawner/random/misc/structure/directional_window/east, @@ -32161,7 +32161,6 @@ /turf/closed/mineral/smooth, /area/deltastation/asteroidcaves/rock) "gvz" = ( -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/effect/turf_decal/tile/transparent/red/half/contrasted, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) @@ -36385,9 +36384,6 @@ /turf/open/floor/iron, /area/deltastation/science/xenobiology) "hnm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/door/airlock/mainship/engineering{ name = "Supermatter Engine Room" }, @@ -36582,8 +36578,6 @@ /turf/closed/wall/r_wall/unmeltable, /area/deltastation/command/heads_quarters/hos) "hpF" = ( -/obj/effect/mapping_helpers/simple_pipes/cyan/visible/layer2, -/obj/effect/mapping_helpers/simple_pipes/green/visible/layer4, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -36593,6 +36587,12 @@ /obj/structure/prop/mainship/doorblocker/engi{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible/layer3{ + dir = 8 + }, /turf/open/floor/engine, /area/deltastation/engineering/supermatter) "hpS" = ( @@ -41704,6 +41704,7 @@ /obj/effect/turf_decal/tile/transparent/red/half/contrasted{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "ixq" = ( @@ -43195,6 +43196,7 @@ }, /obj/structure/sign/securearea, /obj/structure/cable, +/obj/effect/mapping_helpers/simple_pipes/general/hidden, /turf/open/floor/plating, /area/deltastation/security/execution/education) "iLy" = ( @@ -46345,9 +46347,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -47263,10 +47262,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, /obj/machinery/atmospherics/pipe/layer_manifold, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/iron, /area/deltastation/science/xenobiology) "jEO" = ( @@ -48731,13 +48728,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/mapping_helpers/simple_pipes/cyan/visible, -/obj/effect/mapping_helpers/simple_pipes/cyan/visible/layer2, /obj/machinery/door_control{ dir = 4; id = "engsm"; name = "Radiation Shutters Control" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1, /turf/open/floor/iron, /area/deltastation/engineering/supermatter/room) "jUE" = ( @@ -50292,6 +50288,17 @@ }, /turf/open/floor/iron/white, /area/deltastation/science/research) +"klJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 1; + on = 1 + }, +/obj/effect/forcefield{ + desc = "You can't get in. Heh."; + name = "Blocker" + }, +/turf/open/floor/engine, +/area/deltastation/engineering/supermatter) "klM" = ( /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, /obj/effect/turf_decal/warning_stripes/box/empty, @@ -52885,8 +52892,6 @@ /turf/open/floor/iron, /area/deltastation/commons/dorms) "kME" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/mainship/engineering/atmos{ name = "Atmospherics Project Closet" }, @@ -52899,8 +52904,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 8 }, /turf/open/floor/iron, /area/deltastation/engineering/atmos/project) @@ -52988,12 +52993,14 @@ /turf/open/floor/iron/cafeteria, /area/deltastation/security/prison/mess) "kNX" = ( -/obj/effect/mapping_helpers/simple_pipes/cyan/visible/layer2, -/obj/effect/mapping_helpers/simple_pipes/green/visible/layer4, /obj/effect/forcefield{ desc = "You can't get in. Heh."; name = "Blocker" }, +/obj/machinery/atmospherics/pipe/manifold/green/visible/layer3, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer1{ + dir = 1 + }, /turf/open/floor/engine, /area/deltastation/engineering/supermatter) "kOb" = ( @@ -59188,13 +59195,14 @@ /turf/open/floor/iron, /area/deltastation/security/prison) "mbE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 1 - }, /obj/effect/forcefield{ desc = "You can't get in. Heh."; name = "Blocker" }, +/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ + dir = 1; + on = 1 + }, /turf/open/floor/engine, /area/deltastation/engineering/supermatter) "mbR" = ( @@ -64455,11 +64463,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/mapping_helpers/simple_pipes/green/visible, -/obj/effect/mapping_helpers/simple_pipes/green/visible/layer4, /obj/structure/sign/securearea{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer3, /turf/open/floor/iron, /area/deltastation/engineering/supermatter/room) "nhB" = ( @@ -65580,6 +65587,7 @@ /obj/item/tank/oxygen/red, /obj/item/tank/oxygen/red, /obj/item/tank/oxygen/red, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "nuu" = ( @@ -72183,7 +72191,6 @@ /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/outlet_injector, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "oLV" = ( @@ -74249,8 +74256,6 @@ /turf/open/floor/plating, /area/deltastation/engineering/transit_tube) "pir" = ( -/obj/effect/mapping_helpers/simple_pipes/cyan/visible/layer2, -/obj/effect/mapping_helpers/simple_pipes/green/visible/layer4, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -74260,6 +74265,12 @@ /obj/structure/prop/mainship/doorblocker/engi{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible/layer3{ + dir = 8 + }, /obj/effect/forcefield{ desc = "You can't get in. Heh."; name = "Blocker" @@ -75188,8 +75199,8 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, /turf/open/floor/iron/half, /area/deltastation/engineering/atmos/project) @@ -75884,7 +75895,6 @@ /area/deltastation/hallway/primary/central/fore) "pys" = ( /obj/structure/cable, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/transparent/red/half/contrasted{ @@ -78824,7 +78834,6 @@ }, /obj/structure/prop/mainship/turretprop, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 }, @@ -82519,7 +82528,6 @@ /obj/effect/spawner/random/misc/structure/directional_window/west, /obj/structure/cable, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/iron/dark, @@ -83729,13 +83737,14 @@ "raq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/effect/landmark/weed_node, /obj/effect/ai_node, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "rax" = ( @@ -89623,7 +89632,6 @@ name = "Server Access" }, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -94684,10 +94692,6 @@ "tmf" = ( /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/layer1{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/iron, /area/deltastation/science/server) @@ -95366,17 +95370,13 @@ /turf/open/floor/iron/white, /area/deltastation/medical/chemistry) "ttl" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Chamber"; - pixel_y = -5 +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{ + dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Chamber to Cooling"; - pixel_y = 4 +/obj/machinery/atmospherics/pipe/simple/green/visible/layer3{ + dir = 8 }, -/obj/effect/turf_decal/box, /turf/open/floor/engine, /area/deltastation/engineering/supermatter) "ttm" = ( @@ -97177,7 +97177,6 @@ "tLZ" = ( /obj/machinery/light/small, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /turf/open/floor/iron, /area/deltastation/science/server) @@ -97598,9 +97597,7 @@ /obj/effect/turf_decal/tile/transparent/red/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, +/obj/effect/mapping_helpers/simple_pipes/general/hidden, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "tPO" = ( @@ -100951,7 +100948,6 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor{ dir = 1 }, @@ -101396,11 +101392,11 @@ /turf/open/floor/iron/grimy, /area/deltastation/ai_monitored/turret_protected/aisat_interior) "uCs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/forcefield{ desc = "You can't get in. Heh."; name = "Blocker" }, +/obj/machinery/atmospherics/components/unary/vent_scrubber, /turf/open/floor/engine, /area/deltastation/engineering/supermatter) "uCE" = ( @@ -101837,7 +101833,6 @@ /area/deltastation/security/checkpoint/medical/medsci) "uIk" = ( /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/item/tool/wrench, /obj/structure/rack, /obj/effect/turf_decal/warning_stripes/box/empty, @@ -102539,9 +102534,6 @@ "uOL" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/transparent/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, /obj/effect/landmark/weed_node, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/iron, @@ -104016,7 +104008,6 @@ /turf/open/floor/iron, /area/deltastation/cargo/storage) "vcY" = ( -/obj/effect/mapping_helpers/simple_pipes/general/hidden, /obj/structure/prop/mainship/gelida/propserver, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 @@ -110794,7 +110785,6 @@ /area/deltastation/asteroidcaves/derelictwest) "wur" = ( /obj/effect/spawner/random/misc/plant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -110879,19 +110869,19 @@ /turf/open/floor/iron, /area/deltastation/security/execution/transfer) "wvg" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Engine Cooling Bypass" - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/mapping_helpers/simple_pipes/cyan/visible/layer2, -/obj/effect/mapping_helpers/simple_pipes/green/visible/layer4, /obj/effect/turf_decal/box/corners, /obj/effect/turf_decal/box/corners{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible/layer3{ + dir = 9 + }, /turf/open/floor/iron, /area/deltastation/engineering/supermatter/room) "wvr" = ( @@ -116375,6 +116365,7 @@ /obj/effect/turf_decal/tile/transparent/red/anticorner/contrasted{ dir = 4 }, +/obj/effect/mapping_helpers/simple_pipes/general/hidden, /turf/open/floor/iron/dark, /area/deltastation/security/execution/education) "xzU" = ( @@ -141346,7 +141337,7 @@ jHw jdQ gWn uCs -kNX +ghi mbE oMW nzj @@ -141604,7 +141595,7 @@ seK tbJ uCs ehW -mbE +klJ aIN vRs mEc @@ -148822,7 +148813,7 @@ wua cNO dXs uIk -ghi +qRX xdj fxi xEN diff --git a/_maps/map_files/gelida_iv/gelida_iv.dmm b/_maps/map_files/gelida_iv/gelida_iv.dmm index 0bb12620bc741..56af5fa19edc8 100644 --- a/_maps/map_files/gelida_iv/gelida_iv.dmm +++ b/_maps/map_files/gelida_iv/gelida_iv.dmm @@ -7514,6 +7514,9 @@ dir = 4 }, /area/gelida/indoors/a_block/dorms) +"eQn" = ( +/turf/closed/mineral/smooth/darkfrostwall, +/area/gelida/outdoors/rock) "eQB" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -8767,19 +8770,6 @@ }, /turf/open/floor/plating/ground/snow/layer0, /area/gelida/outdoors/colony_streets/south_east_street) -"fMY" = ( -/obj/machinery/door/airlock/mainship/security/glass{ - name = "\improper Marshall Office Interrogation"; - req_access = null - }, -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 - }, -/turf/open/floor/mainship/stripesquare, -/area/gelida/indoors/a_block/security) "fNo" = ( /obj/structure/bed{ dir = 5; @@ -12377,6 +12367,10 @@ dir = 6 }, /area/gelida/indoors/a_block/admin) +"ieX" = ( +/obj/effect/landmark/lv624/fog_blocker/xeno_spawn, +/turf/closed/mineral/smooth/darkfrostwall, +/area/gelida/outdoors/rock) "ieY" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 10 @@ -14321,9 +14315,6 @@ /obj/effect/ai_node, /turf/open/floor/plating/ground/snow/layer0, /area/gelida/outdoors/colony_streets/north_east_street) -"juT" = ( -/turf/closed/mineral/smooth/darkfrostwall, -/area/gelida/outdoors/rock) "jvj" = ( /turf/open/floor/tile/yellow/patch, /area/gelida/indoors/a_block/corpo) @@ -15040,9 +15031,6 @@ /obj/effect/ai_node, /turf/open/floor/plating/ground/snow/layer1, /area/gelida/outdoors/colony_streets/north_street) -"jSF" = ( -/turf/closed/mineral/smooth/darkfrostwall, -/area/gelida/powergen) "jSP" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -20127,10 +20115,6 @@ /obj/structure/prop/mainship/gelida/smallwire, /turf/open/floor/plating/ground/snow/layer1, /area/gelida/outdoors/colony_streets/east_central_street) -"nnp" = ( -/obj/effect/landmark/lv624/fog_blocker/xeno_spawn, -/turf/closed/mineral/smooth/darkfrostwall, -/area/gelida/outdoors/rock) "nnE" = ( /obj/effect/decal/cleanable/blood, /obj/machinery/light{ @@ -20201,6 +20185,9 @@ /obj/effect/landmark/lv624/fog_blocker/xeno_spawn, /turf/open/floor/plating/ground/ice, /area/gelida/caves/west_caves) +"nqU" = ( +/turf/closed/mineral/smooth/darkfrostwall, +/area/gelida/powergen) "nqZ" = ( /obj/effect/spawner/random/engineering/wood, /turf/open/floor/prison/darkbrown/full, @@ -31031,6 +31018,16 @@ }, /turf/open/floor/prison/darkbrown/full, /area/gelida/indoors/c_block/mining) +"uuY" = ( +/obj/machinery/door/airlock/mainship/security/glass{ + name = "\improper Marshall Office Interrogation"; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/green/hidden{ + dir = 4 + }, +/turf/open/floor/mainship/stripesquare, +/area/gelida/indoors/a_block/security) "uvE" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 4 @@ -37272,15 +37269,15 @@ cgS cgS cgS cgS -juT -juT -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn cgS cgS cgS @@ -37494,15 +37491,15 @@ cgS cgS cgS cgS -juT +eQn yiB yiB -juT -juT +eQn +eQn yiB yiB yiB -juT +eQn cgS cgS cgS @@ -37715,8 +37712,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn yiB dII ewI @@ -37724,8 +37721,8 @@ nyI gBm gZL yiB -juT -juT +eQn +eQn cgS cgS cgS @@ -37936,8 +37933,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn yiB cDx dKf @@ -37947,8 +37944,8 @@ geP aPS gZL yiB -juT -juT +eQn +eQn cgS cgS cgS @@ -37984,16 +37981,16 @@ cgS cgS cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -38157,8 +38154,8 @@ nsK cgS cgS cgS -juT -juT +eQn +eQn yiB yiB cDx @@ -38170,8 +38167,8 @@ bgd hRV yiB yiB -juT -juT +eQn +eQn cgS cgS cgS @@ -38205,21 +38202,21 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn sPY sPY -juT +eQn cgS cgS -juT -juT +eQn +eQn uew -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cgS cgS cgS @@ -38378,8 +38375,8 @@ nsK (9,1,1) = {" cgS cgS -juT -juT +eQn +eQn cmF bem iUh @@ -38393,8 +38390,8 @@ geP bua sUt ckC -juT -juT +eQn +eQn cgS cgS cgS @@ -38427,27 +38424,27 @@ cgS cgS cgS cgS -juT +eQn sPY sPY agw -juT -juT -juT -juT +eQn +eQn +eQn +eQn uew uew uew uew uew uew -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn cgS cgS cgS @@ -38600,7 +38597,7 @@ nsK (10,1,1) = {" cgS cgS -juT +eQn cmF cmF bjn @@ -38616,8 +38613,8 @@ iUh sUt jBU ckC -juT -juT +eQn +eQn cgS cgS cgS @@ -38648,8 +38645,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn bOD sPY sPY @@ -38669,7 +38666,7 @@ uew uew uew uew -juT +eQn cgS cgS cgS @@ -38822,7 +38819,7 @@ nsK (11,1,1) = {" cgS cgS -juT +eQn cmF cmF bjn @@ -38839,8 +38836,8 @@ jua ckC ckC cmF -juT -juT +eQn +eQn cgS cgS cgS @@ -38865,12 +38862,12 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn cgS -juT -juT +eQn +eQn sPY sPY sPY @@ -38891,7 +38888,7 @@ pLC xvz qFN jFo -juT +eQn cgS cgS cgS @@ -39043,8 +39040,8 @@ nsK "} (12,1,1) = {" cgS -juT -juT +eQn +eQn cmF cmF bjn @@ -39062,9 +39059,9 @@ dOs ckC dOs cmF -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -39081,17 +39078,17 @@ cgS cgS cgS cgS -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn cJC -juT -juT -juT +eQn +eQn +eQn sPY wJU sPY @@ -39113,17 +39110,17 @@ kUg pJc abp oqu -juT +eQn cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn cgS -juT -juT -juT +eQn +eQn +eQn cgS ndb ndb @@ -39265,7 +39262,7 @@ nsK "} (13,1,1) = {" cgS -juT +eQn cmF cmF cmF @@ -39286,9 +39283,9 @@ cmF cmF cmF cmF -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -39301,9 +39298,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn hLP hLP qxI @@ -39335,17 +39332,17 @@ hFv gHC qqv niX -juT -juT +eQn +eQn cgS cgS -juT +eQn uew -juT -juT -juT +eQn +eQn +eQn uew -juT +eQn ndb ndb ndb @@ -39487,8 +39484,8 @@ nsK "} (14,1,1) = {" cgS -juT -juT +eQn +eQn cmF cmF bjn @@ -39510,9 +39507,9 @@ anV cmF cmF cmF -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -39521,9 +39518,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn qxI qxI qxI @@ -39558,10 +39555,10 @@ lYx xPd fJd uew -juT -juT -juT -juT +eQn +eQn +eQn +eQn uew uew uew @@ -39709,8 +39706,8 @@ nsK "} (15,1,1) = {" cgS -juT -juT +eQn +eQn cmF cmF bem @@ -39734,16 +39731,16 @@ wpv cmF cmF cmF -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn xjB qxI qxI @@ -39781,8 +39778,8 @@ xPd uew uew uew -juT -juT +eQn +eQn uew uew eue @@ -39931,7 +39928,7 @@ nsK "} (16,1,1) = {" cgS -juT +eQn cmF cmF cmF @@ -39958,13 +39955,13 @@ cmF cmF wpv anV -juT -juT +eQn +eQn cgS cgS -juT -juT -juT +eQn +eQn +eQn hLP dag qxI @@ -40153,8 +40150,8 @@ nsK "} (17,1,1) = {" cgS -juT -juT +eQn +eQn cmF cmF bjn @@ -40181,10 +40178,10 @@ cmF cmF cmF anV -juT -juT +eQn +eQn cgS -juT +eQn qxI qxI hLP @@ -40197,8 +40194,8 @@ qEf qxI xjB qxI -juT -juT +eQn +eQn cJC rfq rfq @@ -40376,9 +40373,9 @@ nsK (18,1,1) = {" cgS cgS -juT +eQn cmF -juT +eQn yiB yiB aPS @@ -40390,7 +40387,7 @@ iUh aPS yiB yiB -juT +eQn ckC dOs cmF @@ -40404,9 +40401,9 @@ cmF wpv cmF cmF -juT -juT -juT +eQn +eQn +eQn qxI qxI qxI @@ -40416,16 +40413,16 @@ qxI qxI qxI qEf -juT -juT -juT -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn rih sPY sPY @@ -40598,10 +40595,10 @@ nsK (19,1,1) = {" cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn yiB cQx dUu @@ -40611,8 +40608,8 @@ iUh hgq hRV yiB -juT -juT +eQn +eQn ckC wpv dOs @@ -40636,9 +40633,9 @@ qxI qxI qxI amr -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -40647,7 +40644,7 @@ cgS cgS cgS cgS -juT +eQn otX tWN sPY @@ -40823,7 +40820,7 @@ cgS cgS cgS cgS -juT +eQn yiB yiB yiB @@ -40833,8 +40830,8 @@ gLz yiB yiB yiB -juT -juT +eQn +eQn cmF cmF cmF @@ -40855,10 +40852,10 @@ qxI yld qxI qxI -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS @@ -40869,7 +40866,7 @@ cgS cgS cgS cgS -juT +eQn xbv rih sPY @@ -41042,10 +41039,10 @@ nsK (21,1,1) = {" cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn yiB lmN lUi @@ -41055,8 +41052,8 @@ sWh hsw kuB yiB -juT -juT +eQn +eQn cmF cmF cmF @@ -41076,8 +41073,8 @@ qxI qxI qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -41091,8 +41088,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn otX tWN rih @@ -41263,8 +41260,8 @@ nsK "} (22,1,1) = {" cgS -juT -juT +eQn +eQn yiB yiB yiB @@ -41278,7 +41275,7 @@ wgu fTM yiB yiB -juT +eQn cmF cmF wpv @@ -41296,9 +41293,9 @@ pvC qxI qxI qxI -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -41314,12 +41311,12 @@ cgS cgS cgS cgS -juT +eQn otX otX rih -juT -juT +eQn +eQn eue tzc eue @@ -41332,8 +41329,8 @@ ndb tzc tzc uew -juT -juT +eQn +eQn uew uew uew @@ -41485,7 +41482,7 @@ nsK "} (23,1,1) = {" cgS -juT +eQn yiB yiB aHZ @@ -41500,7 +41497,7 @@ upW aUs sWh yiB -juT +eQn cmF cmF cmF @@ -41517,8 +41514,8 @@ cmF uzr cmF qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -41536,18 +41533,18 @@ cgS cgS cgS cgS -juT +eQn rih rih -juT -juT -juT +eQn +eQn +eQn tzc tzc tzc -juT -juT -juT +eQn +eQn +eQn eue tzc oWT @@ -41555,7 +41552,7 @@ tzc uew uew uew -juT +eQn uew kZp uew @@ -41707,7 +41704,7 @@ nsK "} (24,1,1) = {" cgS -juT +eQn yiB aeZ aNR @@ -41739,8 +41736,8 @@ cmF uzr cmF qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -41753,24 +41750,24 @@ cgS cgS cgS cgS -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn rih otX -juT -juT -juT +eQn +eQn +eQn tzc xPx eue -juT -juT -juT -juT +eQn +eQn +eQn +eQn tzc uew uew @@ -41929,8 +41926,8 @@ nsK "} (25,1,1) = {" cgS -juT -juT +eQn +eQn sWh cZX upW @@ -41962,9 +41959,9 @@ uzr cmF qxI amr -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -41973,25 +41970,25 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn qxI qxI xjB -juT +eQn rih otX tWN rih -juT +eQn tzc tzc eue tzc tzc -juT -juT +eQn +eQn eue tzc uew @@ -42152,7 +42149,7 @@ nsK (26,1,1) = {" cgS cgS -juT +eQn apd apA bAh @@ -42186,16 +42183,16 @@ qxI qxI qxI hLP -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn qxI xjB qxI @@ -42373,8 +42370,8 @@ nsK "} (27,1,1) = {" cgS -juT -juT +eQn +eQn sZZ upW upW @@ -42410,12 +42407,12 @@ qxI qxI qxI qxI -juT +eQn cgS cgS -juT -juT -juT +eQn +eQn +eQn hLP qxI qxI @@ -42595,7 +42592,7 @@ nsK "} (28,1,1) = {" cgS -juT +eQn yiB atX axk @@ -42632,10 +42629,10 @@ hLP hLP qxI qxI -juT -juT -juT -juT +eQn +eQn +eQn +eQn hLP qxI qxI @@ -42817,7 +42814,7 @@ nsK "} (29,1,1) = {" cgS -juT +eQn yiB yiB apd @@ -42870,8 +42867,8 @@ qxI cJC rih rih -juT -juT +eQn +eQn eue tzc uew @@ -43039,8 +43036,8 @@ nsK "} (30,1,1) = {" cgS -juT -juT +eQn +eQn yiB sWh cLZ @@ -43054,7 +43051,7 @@ dkT kuB yiB yiB -juT +eQn cmF cmF cmF @@ -43089,11 +43086,11 @@ mPF qxI qxI cJC -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn bPS tzc uew @@ -43262,8 +43259,8 @@ nsK (31,1,1) = {" cgS cgS -juT -juT +eQn +eQn yiB dhv yiB @@ -43275,8 +43272,8 @@ yiB yiB yiB yiB -juT -juT +eQn +eQn cmF cmF cmF @@ -43288,8 +43285,8 @@ cmF anV anV anV -juT -juT +eQn +eQn anV anV qxI @@ -43308,14 +43305,14 @@ qxI xjB qxI qxI -juT -juT -juT -juT -cgS -juT -juT -juT +eQn +eQn +eQn +eQn +cgS +eQn +eQn +eQn tzc eue tzc @@ -43484,22 +43481,22 @@ nsK (32,1,1) = {" cgS cgS -juT +eQn jBU cmF njJ ckC -juT -juT -juT -juT -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn cmF dOs cmF @@ -43507,14 +43504,14 @@ cmF cmF cmF anV -juT -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn xjB qxI qxI @@ -43529,13 +43526,13 @@ qxI xjB qxI qxI -juT -juT +eQn +eQn cgS cgS cgS -juT -juT +eQn +eQn tzc tzc tzc @@ -43706,12 +43703,12 @@ nsK (33,1,1) = {" cgS cgS -juT +eQn ckC ckC njJ anV -juT +eQn cgS cgS cgS @@ -43721,23 +43718,23 @@ cgS cgS cgS cgS -juT +eQn wpv cmF cmF wpv cmF cmF -juT -juT +eQn +eQn cgS cgS cgS cgS cgS cgS -juT -juT +eQn +eQn qxI qxI qxI @@ -43748,15 +43745,15 @@ ugu qEf qxI qxI -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS cgS -juT +eQn tzc tzc eue @@ -43928,12 +43925,12 @@ nsK (34,1,1) = {" cgS cgS -juT +eQn cmF arf njJ -juT -juT +eQn +eQn cgS cgS cgS @@ -43943,14 +43940,14 @@ cgS cgS cgS cgS -juT +eQn cmF cmF cmF cmF cmF cmF -juT +eQn cgS cgS cgS @@ -43959,8 +43956,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qxI qxI dao @@ -43968,17 +43965,17 @@ qxI xjB qxI qEf -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS cgS cgS -juT -juT +eQn +eQn tzc rai eue @@ -44149,12 +44146,12 @@ nsK "} (35,1,1) = {" cgS -juT -juT +eQn +eQn cmF cmF eeT -juT +eQn cgS cgS cgS @@ -44165,14 +44162,14 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cmF cmF cmF cmF -juT -juT +eQn +eQn cgS cgS cgS @@ -44181,7 +44178,7 @@ cgS cgS cgS cgS -juT +eQn qxI qxI qxI @@ -44189,8 +44186,8 @@ qxI qxI qxI hLP -juT -juT +eQn +eQn cgS cgS cgS @@ -44199,7 +44196,7 @@ cgS cgS cgS cgS -juT +eQn tzc tzc eue @@ -44371,12 +44368,12 @@ nsK "} (36,1,1) = {" cgS -juT +eQn anV cmF cmF eFS -juT +eQn cgS cgS cgS @@ -44388,12 +44385,12 @@ cgS cgS cgS cgS -juT +eQn cmF wpv cmF -juT -juT +eQn +eQn cgS cgS cgS @@ -44401,17 +44398,17 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn qxI qxI xjB qxI qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -44421,8 +44418,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tzc eue eue @@ -44593,12 +44590,12 @@ nsK "} (37,1,1) = {" cgS -juT +eQn anV wpv dOs eeT -juT +eQn cgS cgS cgS @@ -44610,11 +44607,11 @@ cgS cgS cgS cgS -juT +eQn cmF cmF cmF -juT +eQn cgS cgS cgS @@ -44623,7 +44620,7 @@ cgS cgS cgS cgS -juT +eQn qxI qxI qxI @@ -44631,8 +44628,8 @@ qxI qxI qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -44644,8 +44641,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tzc eue eue @@ -44815,13 +44812,13 @@ nsK "} (38,1,1) = {" cgS -juT +eQn cmF cmF wpv eeT -juT -juT +eQn +eQn cgS cgS cgS @@ -44832,11 +44829,11 @@ cgS cgS cgS cgS -juT +eQn dOs cmF cmF -juT +eQn cgS cgS cgS @@ -44844,16 +44841,16 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn amr qxI qxI qxI qxI amr -juT -juT +eQn +eQn cgS cgS cgS @@ -44867,7 +44864,7 @@ cgS cgS cgS cgS -juT +eQn tzc tzc eue @@ -45037,13 +45034,13 @@ nsK "} (39,1,1) = {" cgS -juT -juT +eQn +eQn wpv cmF eeT cmF -juT +eQn cgS cgS cgS @@ -45053,28 +45050,28 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cmF cmF cmF -juT +eQn cgS cgS cgS cgS cgS cgS -juT -juT +eQn +eQn qxI qxI qxI qxI qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -45089,8 +45086,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tzc tzc tzc @@ -45260,13 +45257,13 @@ nsK (40,1,1) = {" cgS cgS -juT +eQn cmF cmF eeT cmF -juT -juT +eQn +eQn cgS cgS cgS @@ -45274,28 +45271,28 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cmF cmF wpv cmF -juT +eQn cgS cgS cgS cgS cgS cgS -juT +eQn qxI qxI qxI xjB qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -45312,7 +45309,7 @@ cgS cgS cgS cgS -juT +eQn tzc bPS tzc @@ -45482,41 +45479,41 @@ nsK (41,1,1) = {" cgS cgS -juT +eQn cmF cmF eeT cmF uzr -juT -juT +eQn +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn cmF cmF cmF cmF cmF -juT +eQn cgS cgS cgS cgS cgS cgS -juT +eQn qxI qxI qxI qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -45534,8 +45531,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tzc tzc uew @@ -45704,40 +45701,40 @@ nsK (42,1,1) = {" cgS cgS -juT -juT +eQn +eQn cmF eeT cmF gNS cmF -juT +eQn cgS cgS cgS cgS cgS -juT +eQn cmF cmF wpv cmF cmF cmF -juT +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn qxI xjB qxI qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -45757,7 +45754,7 @@ cgS cgS cgS cgS -juT +eQn tzc xPx uew @@ -45927,38 +45924,38 @@ nsK cgS cgS cgS -juT +eQn swg eeT eeT fEZ gKU -juT -juT +eQn +eQn cgS cgS cgS cgS -juT +eQn cmF cmF cmF cmF cmF cmF -juT +eQn cgS cgS cgS cgS cgS -juT +eQn qxI qxI qxI qxI qxI -juT +eQn cgS cgS cgS @@ -45979,7 +45976,7 @@ cgS cgS cgS cgS -juT +eQn tzc tzc uew @@ -46149,39 +46146,39 @@ nsK cgS cgS cgS -juT -juT +eQn +eQn cmF cmF uzr eeT cmF -juT -juT +eQn +eQn cgS cgS cgS -juT +eQn cmF wpv cmF cmF cmF cmF -juT -juT +eQn +eQn cgS cgS cgS cgS -juT +eQn qxI qxI qxI xjB qxI -juT -juT +eQn +eQn cgS cgS cgS @@ -46201,7 +46198,7 @@ cgS cgS cgS cgS -juT +eQn eue uew kZp @@ -46372,41 +46369,41 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cmF pvC eeT cmF cmF -juT -juT +eQn +eQn cgS cgS -juT -juT +eQn +eQn dOs cmF dOs cmF wpv cmF -juT +eQn cgS cgS cgS cgS -juT -juT +eQn +eQn qxI qxI qxI qxI qxI -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS @@ -46423,7 +46420,7 @@ cgS cgS cgS cgS -juT +eQn uew uew uew @@ -46595,32 +46592,32 @@ cgS cgS cgS cgS -juT +eQn cmF uzr eeT dOs cmF cmF -juT +eQn cgS cgS cgS -juT -juT +eQn +eQn cmF cmF fyL wpv cmF -juT +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn qxI qxI xjB @@ -46628,9 +46625,9 @@ qxI qxI hLP hLP -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -46645,7 +46642,7 @@ cgS cgS cgS cgS -juT +eQn uew uew esd @@ -46817,32 +46814,32 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uzr gKU wpv cmF wpv -juT +eQn cgS cgS cgS cgS -juT +eQn uGF uGF uGF uGF loD -juT +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn cYz kNR cYz @@ -46852,8 +46849,8 @@ cYz ubb cYz tJs -juT -juT +eQn +eQn cgS cgS cgS @@ -46867,7 +46864,7 @@ cgS cgS cgS cgS -juT +eQn tzc uew uew @@ -47040,30 +47037,30 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qzH uGF uGF uGF -juT +eQn cgS cgS cgS -juT -juT +eQn +eQn uGF gfl uGF uGF -juT -juT +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn cYz cYz cYz @@ -47075,8 +47072,8 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -47089,8 +47086,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn kZp kZp uew @@ -47263,34 +47260,34 @@ cgS cgS cgS cgS -juT +eQn qzH uGF gfl uGF -juT +eQn cgS cgS -juT -juT +eQn +eQn uGF uGF uGF uGF uGF -juT +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn cYz cYz cYz cYz -juT +eQn gkC cYz cYz @@ -47298,8 +47295,8 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -47312,7 +47309,7 @@ cgS cgS cgS cgS -juT +eQn uew uew uew @@ -47484,36 +47481,36 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qzH uGF uGF uGF -juT +eQn cgS cgS -juT +eQn uGF uGF uGF uGF uGF -juT -juT +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn cYz ubb cYz cYz ubb -juT -juT +eQn +eQn cYz cYz ubb @@ -47521,8 +47518,8 @@ cYz dIF cYz ubb -juT -juT +eQn +eQn cgS cgS cgS @@ -47534,7 +47531,7 @@ cgS cgS cgS cgS -juT +eQn kZp iiB uew @@ -47706,46 +47703,46 @@ cgS cgS cgS cgS -juT +eQn loD qzH gfl uGF uGF -juT +eQn cgS -juT -juT +eQn +eQn xEg uGF gfl xEg -juT -juT +eQn +eQn cgS cgS cgS cgS cgS cgS -juT +eQn cYz cYz cYz cYz cYz -juT -juT -juT -juT +eQn +eQn +eQn +eQn cYz cYz cYz cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -47756,7 +47753,7 @@ cgS cgS cgS cgS -juT +eQn uew uew uew @@ -47928,21 +47925,21 @@ cgS cgS cgS cgS -juT +eQn loD qzH uGF uGF gfl -juT +eQn cgS -juT +eQn loD gfl uGF uGF -juT -juT +eQn +eQn cgS cgS cgS @@ -47950,26 +47947,26 @@ cgS cgS cgS cgS -juT +eQn cYz cYz ubb cYz cYz -juT +eQn cgS cgS -juT -juT +eQn +eQn tJs cYz cYz cYz cYz tJs -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -47978,7 +47975,7 @@ cgS cgS cgS cgS -juT +eQn uew uew uew @@ -48150,20 +48147,20 @@ cgS cgS cgS cgS -juT +eQn loD qzH asP uGF uGF -juT +eQn cgS -juT +eQn loD uGF uGF uGF -juT +eQn cgS cgS cgS @@ -48172,18 +48169,18 @@ cgS cgS cgS cgS -juT +eQn cYz cYz cYz cYz cYz -juT +eQn cgS cgS cgS -juT -nnp +eQn +ieX oHy oHy eVB @@ -48191,16 +48188,16 @@ oHy oHy oHy pwZ -nnp -nnp -nnp +ieX +ieX +ieX hsE hsE hsE cgS cgS cgS -juT +eQn uew kZp uew @@ -48372,20 +48369,20 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qzH uGF uGF uGF -juT -juT -juT +eQn +eQn +eQn uGF uGF uGF loD -juT +eQn cgS cgS cgS @@ -48394,18 +48391,18 @@ cgS cgS cgS cgS -juT +eQn tJs cYz dIF tJs -juT -juT +eQn +eQn cgS cgS cgS cgS -nnp +ieX cYz cYz cYz @@ -48415,14 +48412,14 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn cgS hsE cgS cgS cgS -juT +eQn uew uew kZp @@ -48594,20 +48591,20 @@ cgS cgS cgS cgS -juT +eQn uGF qzH uGF uGF uGF uGF -juT +eQn ntJ uGF gfl uGF -juT -juT +eQn +eQn cgS cgS cgS @@ -48616,18 +48613,18 @@ cgS cgS cgS cgS -juT +eQn cYz cYz cYz cYz -juT +eQn cgS cgS cgS cgS cgS -nnp +ieX cYz cYz gkC @@ -48638,13 +48635,13 @@ cYz gkC cYz cYz -juT +eQn cgS hsE cgS cgS cgS -juT +eQn uew uew uew @@ -48816,8 +48813,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qzH uGF xEg @@ -48827,8 +48824,8 @@ uGF ntJ uGF xEg -juT -juT +eQn +eQn cgS cgS cgS @@ -48837,19 +48834,19 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cYz ubb cYz cYz -juT -juT +eQn +eQn cgS cgS cgS cgS -nnp +ieX cYz cYz gkC @@ -48860,13 +48857,13 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn hsE cgS cgS cgS -juT +eQn kZp uew rSi @@ -49038,8 +49035,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qzH xEg uGF @@ -49048,8 +49045,8 @@ uGF uGF bFY uGF -juT -juT +eQn +eQn cgS cgS cgS @@ -49059,20 +49056,20 @@ cgS cgS cgS cgS -juT +eQn gkC cYz cYz cYz cYz cYz -juT +eQn cgS cgS cgS cgS -nnp -juT +ieX +eQn cYz cYz cYz @@ -49083,12 +49080,12 @@ cYz ubb cYz cYz -juT +eQn hsE cgS cgS cgS -juT +eQn uew uew kTM @@ -49260,17 +49257,17 @@ cgS cgS cgS cgS -juT +eQn qzH qzH gfl uGF uGF -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cgS cgS cgS @@ -49280,21 +49277,21 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cYz cYz cYz cYz cYz cYz -juT +eQn cgS cgS cgS cgS hsE -juT +eQn cYz ubb cYz @@ -49305,12 +49302,12 @@ hDd cYz cYz cYz -juT +eQn hsE cgS cgS cgS -juT +eQn uew iiB skK @@ -49482,13 +49479,13 @@ cgS cgS cgS cgS -juT +eQn qzH gfl uGF uGF -juT -juT +eQn +eQn cgS cgS cgS @@ -49502,7 +49499,7 @@ cgS cgS cgS cgS -juT +eQn cYz cYz cYz @@ -49510,13 +49507,13 @@ ubb cYz ubb cYz -juT +eQn cgS cgS cgS cgS hsE -juT +eQn cYz cYz cYz @@ -49527,12 +49524,12 @@ ubb cYz tJs cYz -juT -nnp -juT -juT -juT -juT +eQn +ieX +eQn +eQn +eQn +eQn uew uew kTM @@ -49703,13 +49700,13 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn qzH uGF uGF uGF -juT +eQn cgS cgS cgS @@ -49724,7 +49721,7 @@ cgS cgS cgS cgS -juT +eQn cYz cYz tJs @@ -49732,14 +49729,14 @@ cYz cYz cYz cYz -juT +eQn cgS cgS cgS cgS hsE cgS -juT +eQn cYz cYz cYz @@ -49752,8 +49749,8 @@ cYz cYz aQR gkC -juT -juT +eQn +eQn eue tzc kZp @@ -49925,44 +49922,44 @@ cgS cgS cgS cgS -juT +eQn uGF qzH uGF uGF uGF -juT +eQn cgS hsE -nnp -nnp -nnp -nnp -nnp -nnp -nnp -nnp -nnp -nnp -nnp +ieX +ieX +ieX +ieX +ieX +ieX +ieX +ieX +ieX +ieX +ieX hsE -nnp -juT +ieX +eQn cYz cYz cYz cYz cYz cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS hsE cgS -juT -juT +eQn +eQn cYz cYz cYz @@ -50147,16 +50144,16 @@ cgS cgS cgS cgS -juT +eQn uGF qzH uGF uGF uGF -juT +eQn cgS -nnp -juT +ieX +eQn cqM fPM cqM @@ -50166,11 +50163,11 @@ cqM cqM fPM fPM -juT -juT -nnp -juT -juT +eQn +eQn +ieX +eQn +eQn cYz cYz ubb @@ -50178,13 +50175,13 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn cgS hsE cgS cgS -juT +eQn gkC cYz ubb @@ -50369,15 +50366,15 @@ cgS cgS cgS cgS -juT +eQn uGF qzH uGF xEg -juT -juT -juT -nnp +eQn +eQn +eQn +ieX cqM cqM fPM @@ -50391,8 +50388,8 @@ fPM cqM fPM hXS -juT -juT +eQn +eQn cYz ubb cYz @@ -50401,12 +50398,12 @@ cYz ubb cYz cYz -juT -juT -nnp +eQn +eQn +ieX cgS cgS -juT +eQn ubb cYz cYz @@ -50589,15 +50586,15 @@ nsK cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF qzH asP uGF -juT -juT +eQn +eQn cqM hXI cqM @@ -50625,10 +50622,10 @@ cYz cYz cYz cYz -nnp -juT -juT -juT +ieX +eQn +eQn +eQn cYz cYz cYz @@ -50637,7 +50634,7 @@ gkC cYz ubb cYz -juT +eQn oHy cYz ubb @@ -50811,15 +50808,15 @@ nsK cgS cgS cgS -juT +eQn xEg uGF uGF fZP uGF -juT -juT -juT +eQn +eQn +eQn cqM hXS egm @@ -50848,8 +50845,8 @@ cYz cYz ubb nue -nnp -nnp +ieX +ieX oHy oHy nue @@ -50858,11 +50855,11 @@ pwZ oHy oHy nue -nnp -nnp -nnp -juT -juT +ieX +ieX +ieX +eQn +eQn eue tzc mXU @@ -51032,16 +51029,16 @@ nsK (66,1,1) = {" cgS cgS -juT -juT +eQn +eQn qzH qzH qzH qzH -juT -juT +eQn +eQn cgS -juT +eQn cqM hXI dwS @@ -51062,9 +51059,9 @@ fPM pxr ubb cYz -juT -juT -juT +eQn +eQn +eQn cYz ubb cYz @@ -51079,12 +51076,12 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS -juT +eQn eue eue tzc @@ -51254,16 +51251,16 @@ nsK (67,1,1) = {" cgS cgS -juT +eQn uGF qzH gfl uGF -juT -juT +eQn +eQn cgS cgS -juT +eQn fPM hXS cqM @@ -51280,14 +51277,14 @@ mJj fPM ivx cqM -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cgS -juT -juT +eQn +eQn cYz ubb cYz @@ -51300,13 +51297,13 @@ tJs cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS cgS -juT +eQn eue rai tzc @@ -51476,17 +51473,17 @@ nsK (68,1,1) = {" cgS cgS -juT +eQn uGF qzH uGF uGF -juT +eQn cgS cgS cgS -juT -juT +eQn +eQn hXS gVM cqM @@ -51503,15 +51500,15 @@ fPM ivx cqM cqM -juT -juT +eQn +eQn cqM -juT -juT +eQn +eQn cgS -juT -juT -juT +eQn +eQn +eQn cYz cYz cYz @@ -51521,14 +51518,14 @@ cYz cQd cYz cYz -juT -juT +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn eue eue eue @@ -51698,16 +51695,16 @@ nsK (69,1,1) = {" cgS cgS -juT +eQn uGF qzH uGF -juT -juT +eQn +eQn cgS cgS cgS -juT +eQn iqm igB ivx @@ -51726,15 +51723,15 @@ oBs iqm iqm iqm -juT +eQn etT cqM -juT -juT +eQn +eQn cgS cgS -juT -juT +eQn +eQn tJs cYz ubb @@ -51743,15 +51740,15 @@ cYz cYz cYz ubb -juT +eQn cgS cgS cgS cgS cgS cgS -juT -juT +eQn +eQn eue rai sWa @@ -51920,16 +51917,16 @@ nsK (70,1,1) = {" cgS cgS -juT +eQn uGF qzH uGF -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn iqm laA cqM @@ -51952,20 +51949,20 @@ laA cqM fPM cqM -juT -juT -juT +eQn +eQn +eQn cgS -juT -juT +eQn +eQn cYz cYz cYz cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -51973,7 +51970,7 @@ cgS cgS cgS cgS -juT +eQn eue tzc sWa @@ -52142,15 +52139,15 @@ nsK (71,1,1) = {" cgS cgS -juT +eQn uGF qzH uGF uGF -juT -juT +eQn +eQn fVm -juT +eQn fPM iqm fPM @@ -52174,19 +52171,19 @@ fPM fXJ elo cqM -juT +eQn qaM -juT +eQn cgS cgS -juT -juT +eQn +eQn cYz tJs cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -52195,7 +52192,7 @@ cgS cgS cgS cgS -juT +eQn tzc tzc pOe @@ -52364,13 +52361,13 @@ nsK (72,1,1) = {" cgS cgS -juT -juT +eQn +eQn qzH gfl uGF uGF -juT +eQn cqM elo fPM @@ -52398,16 +52395,16 @@ cqM etT etT qaW -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -52417,7 +52414,7 @@ cgS cgS cgS cgS -juT +eQn kZp tzc vaE @@ -52585,8 +52582,8 @@ nsK "} (73,1,1) = {" cgS -juT -juT +eQn +eQn uGF qzH vwm @@ -52620,15 +52617,15 @@ fPM fXJ cqM cqM -juT +eQn iqm iqm -juT +eQn cYz cYz ubb -juT -juT +eQn +eQn cgS cgS cgS @@ -52639,7 +52636,7 @@ cgS cgS cgS cgS -juT +eQn uew uew vaE @@ -52807,7 +52804,7 @@ nsK "} (74,1,1) = {" cgS -juT +eQn uGF uGF ewO @@ -52849,7 +52846,7 @@ nyC cYz cYz tJs -juT +eQn cgS cgS cgS @@ -52860,8 +52857,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uew uew vaE @@ -53029,7 +53026,7 @@ nsK "} (75,1,1) = {" cgS -juT +eQn uGF uGF qzH @@ -53071,7 +53068,7 @@ cfP pxr ubb cYz -juT +eQn cgS cgS cgS @@ -53081,8 +53078,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uew uew kZp @@ -53251,7 +53248,7 @@ nsK "} (76,1,1) = {" cgS -juT +eQn uGF gfl qzH @@ -53289,11 +53286,11 @@ iqm iqm cqM fPM -juT -juT +eQn +eQn pxr ubb -juT +eQn cgS cgS cgS @@ -53302,8 +53299,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uew uew uew @@ -53473,7 +53470,7 @@ nsK "} (77,1,1) = {" cgS -juT +eQn uGF uGF qzH @@ -53512,10 +53509,10 @@ qih cqM icv iqm -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS @@ -53524,7 +53521,7 @@ cgS cgS cgS cgS -juT +eQn uew uew uew @@ -53695,7 +53692,7 @@ nsK "} (78,1,1) = {" cgS -juT +eQn uGF uGF qzH @@ -53703,7 +53700,7 @@ bVM cqM dwS eoI -juT +eQn umB cqM hNx @@ -53726,7 +53723,7 @@ lBr iqm cqM cqM -jSF +nqU cqM pXd qes @@ -53734,7 +53731,7 @@ qkR fPM cqM fPM -juT +eQn cgS cgS cgS @@ -53746,9 +53743,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uew uew uew @@ -53917,15 +53914,15 @@ nsK "} (79,1,1) = {" cgS -juT +eQn uGF gfl aEE bVQ cqM fPM -juT -juT +eQn +eQn bdt dwS nyC @@ -53948,15 +53945,15 @@ dwS iqm cqM cqM -jSF -jSF +nqU +nqU pXd qhP qkR cqM lBr lBr -juT +eQn cgS cgS cgS @@ -53970,7 +53967,7 @@ cgS cgS cgS cgS -juT +eQn uew uew uew @@ -54139,15 +54136,15 @@ nsK "} (80,1,1) = {" cgS -juT +eQn uGF uGF qzH xEg cqM -juT -juT -juT +eQn +eQn +eQn fPM fPM nyC @@ -54178,7 +54175,7 @@ eqT cqM fPM fPM -juT +eQn cgS cgS cgS @@ -54192,8 +54189,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uew uew vaE @@ -54368,7 +54365,7 @@ qzH gfl cqM cqM -juT +eQn rCQ cqM cqM @@ -54400,7 +54397,7 @@ eqT dwS fPM iqm -juT +eQn cgS cgS cgS @@ -54415,7 +54412,7 @@ cgS cgS cgS cgS -juT +eQn bcB tzc vaE @@ -54588,11 +54585,11 @@ loD uGF qzH qzH -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn kDZ iqm fPM @@ -54622,13 +54619,13 @@ cqM etT icv iqm -juT +eQn cgS -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cgS cgS cgS @@ -54636,8 +54633,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn ubb bcB eZJ @@ -54805,17 +54802,17 @@ nsK "} (83,1,1) = {" cgS -juT -juT +eQn +eQn uGF uGF eNo uGF -juT -juT +eQn +eQn cgS -juT -juT +eQn +eQn iqm cqM iJR @@ -54844,21 +54841,21 @@ cqM fPM fPM iqm -juT -juT -juT +eQn +eQn +eQn ubb cYz cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS -juT -juT +eQn +eQn tJs cYz bcB @@ -55028,15 +55025,15 @@ nsK (84,1,1) = {" cgS cgS -juT +eQn uGF gfl qzH uGF loD -juT +eQn cgS -juT +eQn icv iqm laA @@ -55066,20 +55063,20 @@ fPM cqM iqm iqm -juT -juT +eQn +eQn cYz cYz cYz cYz tVH cYz -juT -juT +eQn +eQn cgS cgS -juT -juT +eQn +eQn cYz cYz ubb @@ -55250,15 +55247,15 @@ nsK (85,1,1) = {" cgS cgS -juT +eQn uGF vwm ewO uGF uGF -juT -juT -juT +eQn +eQn +eQn lBr iqm cqM @@ -55297,10 +55294,10 @@ tJs tVH ubb cYz -juT -juT -juT -juT +eQn +eQn +eQn +eQn cYz ubb cYz @@ -55472,14 +55469,14 @@ nsK (86,1,1) = {" cgS cgS -juT +eQn uGF gfl qzH uGF gfl loD -juT +eQn fPM gZd iqm @@ -55520,8 +55517,8 @@ eeF tPt tPt cYz -juT -juT +eQn +eQn cYz cYz cYz @@ -55565,7 +55562,7 @@ wtG haP haP haP -fMY +uuY haP qWi qWi @@ -55694,7 +55691,7 @@ nsK (87,1,1) = {" cgS cgS -juT +eQn uGF gfl ewO @@ -55735,8 +55732,8 @@ tPt gpF tPt tPt -juT -juT +eQn +eQn tJs tVH ubb @@ -55916,7 +55913,7 @@ nsK (88,1,1) = {" cgS cgS -juT +eQn uGF uGF qzH @@ -55957,10 +55954,10 @@ cYz cYz cYz cYz -juT -juT -juT -juT +eQn +eQn +eQn +eQn cYz cYz cYz @@ -56137,8 +56134,8 @@ nsK "} (89,1,1) = {" cgS -juT -juT +eQn +eQn asP gfl qzH @@ -56179,11 +56176,11 @@ fPM ubb cYz cYz -juT +eQn cgS cgS -juT -juT +eQn +eQn cYz ubb cYz @@ -56359,7 +56356,7 @@ nsK "} (90,1,1) = {" cgS -juT +eQn uGF uGF uGF @@ -56399,12 +56396,12 @@ gVM qoT cYz cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS -juT +eQn cYz ubb cYz @@ -56412,8 +56409,8 @@ ubb cYz cYz cYz -juT -juT +eQn +eQn cYz cYz bcB @@ -56581,7 +56578,7 @@ nsK "} (91,1,1) = {" cgS -juT +eQn uGF uGF uGF @@ -56618,25 +56615,25 @@ hXS cqM fPM fPM -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn cYz cYz ubb cYz cYz cYz -juT -juT -juT -juT +eQn +eQn +eQn +eQn cYz bcB bBz @@ -56803,8 +56800,8 @@ nsK "} (92,1,1) = {" cgS -juT -juT +eQn +eQn uGF gfl qzH @@ -56838,14 +56835,14 @@ iqm pVA igB iqm -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS -juT -juT +eQn +eQn tJs cYz tVH @@ -56853,12 +56850,12 @@ cYz cYz tJs cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS -juT +eQn cYz bcB ujh @@ -57025,7 +57022,7 @@ nsK "} (93,1,1) = {" cgS -juT +eQn uGF uGF uGF @@ -57060,13 +57057,13 @@ cqM fPM igB iqm -juT +eQn cgS cgS cgS cgS cgS -juT +eQn cYz cYz ubb @@ -57074,13 +57071,13 @@ tVH cYz ubb cYz -juT -juT +eQn +eQn cgS cgS cgS cgS -juT +eQn ubb cYz ujh @@ -57247,7 +57244,7 @@ nsK "} (94,1,1) = {" cgS -juT +eQn gfl uGF uGF @@ -57281,28 +57278,28 @@ iqm cqM etT igB -juT -juT +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn cYz cYz cYz tVH cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn cYz cYz ujh @@ -57469,13 +57466,13 @@ nsK "} (95,1,1) = {" cgS -juT -juT +eQn +eQn uGF xEg uGF uGF -juT +eQn cqM cqM cqM @@ -57503,20 +57500,20 @@ iqm iqm pVA igB -juT +eQn cgS cgS cgS cgS cgS cgS -juT +eQn cYz ubb cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -57524,8 +57521,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn ubb jlM eZJ @@ -57692,13 +57689,13 @@ nsK (96,1,1) = {" cgS cgS -juT -juT +eQn +eQn uGF uGF -juT -juT -juT +eQn +eQn +eQn eqT cqM fPM @@ -57725,29 +57722,29 @@ iqm iqm cqM igB -juT +eQn cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn cYz cYz -juT -juT +eQn +eQn cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn cYz jlM wGX @@ -57915,13 +57912,13 @@ nsK cgS cgS cgS -juT +eQn gfl uGF uGF -juT -juT -juT +eQn +eQn +eQn lBr cqM iqm @@ -57947,29 +57944,29 @@ iqm iqm pVA igB -juT +eQn cgS cgS cgS -juT -juT +eQn +eQn cYz cYz cYz cYz -juT -juT +eQn +eQn cgS -juT +eQn cYz cYz -juT -juT +eQn +eQn cgS cgS cgS cgS -juT +eQn ubb jlM wGX @@ -58137,27 +58134,27 @@ nsK cgS cgS cgS -juT +eQn uGF uGF gfl loD -juT -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn +eQn fPM iqm -juT -juT -juT -juT -nnp -nnp +eQn +eQn +eQn +eQn +ieX +ieX igB igB hXS @@ -58166,33 +58163,33 @@ hXS nMT igB igB -nnp -nnp -nnp -juT +ieX +ieX +ieX +eQn cgS cgS cgS -juT +eQn cYz cYz cYz cYz ubb cYz -juT -juT -juT +eQn +eQn +eQn cYz ubb cYz -juT -juT +eQn +eQn cgS cgS cgS -juT -juT +eQn +eQn jlM wGX nwP @@ -58359,26 +58356,26 @@ nsK cgS cgS cgS -juT +eQn gfl uGF uGF uGF loD -juT +eQn cgS cgS cgS cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS -juT -juT +eQn +eQn uGF fPM fPM @@ -58388,14 +58385,14 @@ fPM ubb fPM iqm -juT -juT +eQn +eQn cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn cYz tJs ubb @@ -58409,12 +58406,12 @@ cYz cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS -juT +eQn jlM iJc jlM @@ -58581,13 +58578,13 @@ nsK cgS cgS cgS -juT +eQn xEg gfl uGF uGF asP -juT +eQn cgS cgS cgS @@ -58599,7 +58596,7 @@ cgS cgS cgS cgS -juT +eQn uGF gfl uGF @@ -58611,11 +58608,11 @@ cYz cYz tJs iqm -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cYz cYz cYz @@ -58632,11 +58629,11 @@ cYz cYz cYz ubb -juT -juT -juT +eQn +eQn +eQn cgS -juT +eQn jlM wGX jSq @@ -58803,14 +58800,14 @@ nsK cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF gfl uGF -juT -juT +eQn +eQn cgS cgS cgS @@ -58820,8 +58817,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uGF uGF uGF @@ -58856,9 +58853,9 @@ ubb cYz cYz cYz -juT -juT -juT +eQn +eQn +eQn jlM wGX ujh @@ -59026,14 +59023,14 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uGF uGF uGF uGF -juT -juT +eQn +eQn cgS cgS cgS @@ -59042,7 +59039,7 @@ cgS cgS cgS cgS -juT +eQn uGF uGF vwm @@ -59064,7 +59061,7 @@ ubb cYz cYz cYz -juT +eQn cYz ubb cYz @@ -59079,8 +59076,8 @@ cYz cYz tJs ubb -juT -juT +eQn +eQn jlM wGX ujh @@ -59248,23 +59245,23 @@ cgS cgS cgS cgS -juT +eQn uGF gfl uGF uGF gfl uGF -juT -juT -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn +eQn +eQn cgS cgS -juT +eQn uGF gfl uGF @@ -59285,14 +59282,14 @@ gkC cYz cYz ubb -juT -juT -juT +eQn +eQn +eQn cYz cYz -juT -juT -juT +eQn +eQn +eQn ubb cYz cYz @@ -59302,7 +59299,7 @@ cYz cYz cYz cYz -juT +eQn jlM rsf bBz @@ -59470,8 +59467,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn xEg uGF uGF @@ -59483,10 +59480,10 @@ uGF uGF gfl uGF -juT -juT +eQn +eQn cgS -juT +eQn uGF uGF uGF @@ -59506,17 +59503,17 @@ oHy cYz cYz cYz -juT -juT +eQn +eQn cgS -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn ubb cYz -juT +eQn cYz cYz ubb @@ -59693,9 +59690,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF uGF uGF @@ -59706,10 +59703,10 @@ uGF uGF uGF uGF -juT +eQn cgS -juT -juT +eQn +eQn xEg uGF gfl @@ -59726,20 +59723,20 @@ cYz cYz pwZ cYz -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS cgS cgS -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cYz cYz ubb @@ -59917,8 +59914,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uGF uGF gfl @@ -59928,12 +59925,12 @@ uGF gfl gfl uGF -juT +eQn cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF qTf xEg @@ -59947,8 +59944,8 @@ ubb cYz tJs oHy -juT -juT +eQn +eQn cgS cgS cgS @@ -59961,7 +59958,7 @@ cgS cgS cgS cgS -juT +eQn ubb cYz cYz @@ -60139,8 +60136,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uGF xEg gfl @@ -60150,14 +60147,14 @@ xEg uGF uGF xEg -juT -juT +eQn +eQn cgS cgS cgS -juT -juT -nnp +eQn +eQn +ieX uGF uGF cYz @@ -60168,8 +60165,8 @@ cYz cYz cYz cYz -nnp -juT +ieX +eQn cgS cgS cgS @@ -60183,11 +60180,11 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn cYz ubb -juT +eQn bcB bcB bBz @@ -60361,7 +60358,7 @@ cgS cgS cgS cgS -juT +eQn uGF uGF uGF @@ -60373,14 +60370,14 @@ uGF uGF uGF uGF -juT +eQn cgS cgS cgS cgS cgS -nnp -juT +ieX +eQn uGF cYz cYz @@ -60389,8 +60386,8 @@ cYz cYz cYz cYz -juT -nnp +eQn +ieX cgS cgS cgS @@ -60406,11 +60403,11 @@ cgS cgS cgS cgS -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn bBz ujh ujh @@ -60583,7 +60580,7 @@ cgS cgS cgS cgS -juT +eQn loD uGF gfl @@ -60595,14 +60592,14 @@ uGF uGF uGF loD -juT +eQn cgS cgS cgS cgS cgS hsE -juT +eQn uGF rvq gkC @@ -60610,8 +60607,8 @@ gkC cYz ubb cYz -juT -juT +eQn +eQn hsE cgS cgS @@ -60632,9 +60629,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn ilb cZN ilb @@ -60805,7 +60802,7 @@ cgS cgS cgS cgS -juT +eQn loD uGF uGF @@ -60817,14 +60814,14 @@ uGF uGF gfl loD -juT +eQn cgS cgS cgS cgS cgS hsE -juT +eQn uGF cYz gkC @@ -60832,7 +60829,7 @@ gkC cYz cYz cYz -juT +eQn cgS hsE cgS @@ -60854,8 +60851,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn ilb ilb nSG @@ -61027,8 +61024,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uGF gfl uGF @@ -61039,22 +61036,22 @@ uGF uGF uGF uGF -juT -juT +eQn +eQn cgS cgS cgS cgS hsE -juT -juT +eQn +eQn cYz cYz cYz cYz ubb cYz -juT +eQn cgS hsE cgS @@ -61074,9 +61071,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn ilb ilb ilb @@ -61250,7 +61247,7 @@ cgS cgS cgS cgS -juT +eQn uGF uGF uGF @@ -61262,21 +61259,21 @@ uGF gfl uGF uGF -juT +eQn cgS cgS cgS cgS hsE hsE -nnp -nnp +ieX +ieX oHy oHy eVB oHy oHy -nnp +ieX hsE hsE cgS @@ -61294,9 +61291,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn ilb ilb ilb @@ -61472,7 +61469,7 @@ cgS cgS cgS cgS -juT +eQn loD xEg uGF @@ -61484,7 +61481,7 @@ uGF xEg uGF uGF -juT +eQn cgS cgS cgS @@ -61492,13 +61489,13 @@ cgS cgS cgS cgS -juT +eQn cYz cYz cYz cYz cYz -juT +eQn cgS cgS cgS @@ -61515,8 +61512,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn ilb ilb vby @@ -61694,7 +61691,7 @@ cgS cgS cgS cgS -juT +eQn loD uGF uGF @@ -61706,21 +61703,21 @@ uGF uGF uGF uGF -juT -juT +eQn +eQn cgS cgS cgS cgS cgS cgS -juT -juT +eQn +eQn cYz tJs cYz ubb -juT +eQn cgS cgS cgS @@ -61735,9 +61732,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn ilb ilb juQ @@ -61916,8 +61913,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn loD uGF uGF @@ -61929,20 +61926,20 @@ vwm uGF gfl uGF -juT -juT +eQn +eQn cgS cgS cgS cgS cgS cgS -juT +eQn cYz cYz cYz cYz -juT +eQn cgS cgS cgS @@ -61956,8 +61953,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tyz ilb ilb @@ -62139,9 +62136,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF uGF uGF @@ -62152,19 +62149,19 @@ uGF uGF gfl uGF -juT +eQn cgS cgS cgS cgS cgS cgS -juT +eQn cYz cYz ubb gkC -juT +eQn cgS cgS cgS @@ -62178,7 +62175,7 @@ cgS cgS cgS cgS -juT +eQn tyz tyz ilb @@ -62363,7 +62360,7 @@ cgS cgS cgS cgS -juT +eQn uGF uGF uGF @@ -62374,19 +62371,19 @@ uGF uGF uGF uGF -juT -juT +eQn +eQn cgS cgS cgS cgS -juT -juT +eQn +eQn ubb cYz cYz gkC -juT +eQn cgS cgS cgS @@ -62400,7 +62397,7 @@ cgS cgS cgS cgS -juT +eQn tyz tyz tyz @@ -62585,9 +62582,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF uGF gfl @@ -62597,18 +62594,18 @@ gfl uGF uGF uGF -juT +eQn cgS cgS cgS cgS -juT +eQn cYz cYz cYz ubb -juT -juT +eQn +eQn cgS cgS cgS @@ -62622,7 +62619,7 @@ cgS cgS cgS cgS -juT +eQn jIg tyz tyz @@ -62809,9 +62806,9 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn uGF xEg uGF @@ -62819,17 +62816,17 @@ uGF uGF uGF xEg -juT -juT +eQn +eQn cgS cgS -juT -juT +eQn +eQn cYz cYz cYz cYz -juT +eQn cgS cgS cgS @@ -62844,7 +62841,7 @@ cgS cgS cgS cgS -juT +eQn qHh qHh lyG @@ -63033,8 +63030,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uGF uGF uGF @@ -63042,16 +63039,16 @@ gfl uGF uGF uGF -juT -juT -juT -juT +eQn +eQn +eQn +eQn cYz cYz cYz cYz cYz -juT +eQn cgS cgS cgS @@ -63066,7 +63063,7 @@ cgS cgS cgS cgS -juT +eQn qHh qHh lyG @@ -63255,7 +63252,7 @@ cgS cgS cgS cgS -juT +eQn uGF uGF uGF @@ -63265,15 +63262,15 @@ uGF uGF uGF uGF -juT -juT +eQn +eQn cYz tJs cYz ubb tJs -juT -juT +eQn +eQn cgS cgS cgS @@ -63288,8 +63285,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn lyG uYy uYy @@ -63477,11 +63474,11 @@ cgS cgS cgS cgS -juT +eQn uGF uGF gfl -juT +eQn uGF uGF uGF @@ -63493,8 +63490,8 @@ gfl cYz cYz cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -63511,8 +63508,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uYy uYy @@ -63699,12 +63696,12 @@ cgS cgS cgS cgS -juT +eQn uGF uGF uGF -juT -juT +eQn +eQn uGF uGF uGF @@ -63715,7 +63712,7 @@ uGF cYz cYz ubb -juT +eQn cgS cgS cgS @@ -63734,8 +63731,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uYy uYy @@ -63920,14 +63917,14 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn gfl uGF uGF -juT -juT -juT +eQn +eQn +eQn xEg uGF uGF @@ -63936,8 +63933,8 @@ uGF uGF xEg cYz -juT -juT +eQn +eQn cgS cgS cgS @@ -63957,7 +63954,7 @@ cgS cgS cgS cgS -juT +eQn uYy uYy uYy @@ -64140,25 +64137,25 @@ hsE hsE hsE hsE -nnp -nnp -nnp +ieX +ieX +ieX qTf qTf qTf -nnp -nnp +ieX +ieX cgS -juT -juT -juT +eQn +eQn +eQn uGF uGF uGF gfl uGF gfl -juT +eQn cgS cgS cgS @@ -64179,7 +64176,7 @@ cgS cgS cgS cgS -juT +eQn uYy uxf uYy @@ -64359,29 +64356,29 @@ hsE cgS cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn lnR jqf jqf jqf uLt -juT +eQn hsE cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf jqf jqf -juT -juT +eQn +eQn cgS cgS cgS @@ -64401,8 +64398,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uxf uYy @@ -64580,8 +64577,8 @@ cgS hsE cgS cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -64590,21 +64587,21 @@ jqf lnR jqf jqf -juT +eQn hsE cgS cgS cgS cgS -juT -juT +eQn +eQn jqf lnR jqf jqf kjD -juT -juT +eQn +eQn cgS cgS cgS @@ -64623,8 +64620,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uYy uYy @@ -64802,7 +64799,7 @@ cgS hsE cgS cgS -juT +eQn jqf uLt jqf @@ -64812,22 +64809,22 @@ jqf jqf jqf uLt -juT +eQn hsE cgS cgS cgS cgS cgS -juT -juT +eQn +eQn jqf uLt jqf kjD kTt -juT -juT +eQn +eQn cgS cgS cgS @@ -64844,8 +64841,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uxf uYy uYy @@ -65023,8 +65020,8 @@ cgS cgS hsE cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -65034,7 +65031,7 @@ jqf jqf lnR jqf -juT +eQn hsE cgS cgS @@ -65042,15 +65039,15 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf ihG kjD -juT -juT +eQn +eQn cgS cgS cgS @@ -65065,8 +65062,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uYy uYy @@ -65245,7 +65242,7 @@ cgS cgS hsE cgS -juT +eQn jqf lnR jqf @@ -65256,7 +65253,7 @@ iKs iKs jqf jqf -juT +eQn hsE cgS cgS @@ -65265,14 +65262,14 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf aoY kjD kjD -juT +eQn cgS cgS cgS @@ -65286,8 +65283,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uYy uYy @@ -65467,7 +65464,7 @@ cgS cgS hsE cgS -juT +eQn jqf jqf jqf @@ -65478,8 +65475,8 @@ iKs ldC jqf jqf -juT -nnp +eQn +ieX cgS cgS cgS @@ -65488,13 +65485,13 @@ cgS cgS cgS cgS -juT +eQn jqf lnR kjD kjD kjD -juT +eQn cgS cgS cgS @@ -65508,7 +65505,7 @@ cgS cgS cgS cgS -juT +eQn uYy uYy uYy @@ -65689,8 +65686,8 @@ cgS cgS hsE cgS -juT -juT +eQn +eQn jqf lnR jqf @@ -65701,8 +65698,8 @@ jqf jqf jqf jqf -nnp -juT +ieX +eQn cgS cgS cgS @@ -65710,13 +65707,13 @@ cgS cgS cgS cgS -juT +eQn jqf jqf kjD kjD aoY -juT +eQn cgS cgS cgS @@ -65730,7 +65727,7 @@ cgS cgS cgS cgS -juT +eQn xKP uYy uxf @@ -65911,7 +65908,7 @@ cgS cgS hsE cgS -juT +eQn jqf jqf jqf @@ -65924,22 +65921,22 @@ jqf lnR jqf laW -juT -juT +eQn +eQn cgS cgS cgS cgS cgS cgS -juT +eQn lnR jqf kjD aoY kjD -juT -juT +eQn +eQn cgS cgS cgS @@ -65951,8 +65948,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uYy uYy pKS @@ -66133,8 +66130,8 @@ cgS cgS hsE cgS -juT -juT +eQn +eQn jqf uLt gGl @@ -66147,21 +66144,21 @@ uLt jqf laW jqf -juT +eQn cgS cgS cgS cgS hsE hsE -nnp -nnp +ieX +ieX laW tOc tOc tOc tOc -nnp +ieX hsE hsE hsE @@ -66173,7 +66170,7 @@ cgS cgS cgS cgS -juT +eQn uYy uYy uYy @@ -66355,7 +66352,7 @@ cgS cgS hsE cgS -juT +eQn jqf jqf jqf @@ -66369,7 +66366,7 @@ jqf lnR laW iKs -juT +eQn cgS cgS cgS @@ -66377,14 +66374,14 @@ cgS hsE cgS cgS -juT -juT +eQn +eQn kjD kjD kjD aoY -juT -juT +eQn +eQn cgS cgS cgS @@ -66395,7 +66392,7 @@ cgS cgS cgS cgS -juT +eQn uYy uYy uxf @@ -66577,7 +66574,7 @@ cgS cgS hsE cgS -juT +eQn jqf lnR jqf @@ -66591,7 +66588,7 @@ jqf jqf laW jqf -juT +eQn cgS cgS cgS @@ -66600,13 +66597,13 @@ hsE cgS cgS cgS -juT +eQn kTt aoY kjD kjD kTt -juT +eQn cgS cgS cgS @@ -66617,7 +66614,7 @@ cgS cgS cgS cgS -juT +eQn uYy uxf uYy @@ -66799,8 +66796,8 @@ cgS cgS hsE hsE -nnp -nnp +ieX +ieX laW laW laW @@ -66813,7 +66810,7 @@ laW prh laW lnR -juT +eQn cgS cgS cgS @@ -66822,15 +66819,15 @@ hsE cgS cgS cgS -juT +eQn kjD kjD kjD aoY kjD -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -66839,7 +66836,7 @@ cgS cgS cgS cgS -juT +eQn uYy uYy uYy @@ -67022,8 +67019,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf lnR jqf @@ -67035,7 +67032,7 @@ jqf jqf jqf jqf -juT +eQn cgS cgS cgS @@ -67044,15 +67041,15 @@ hsE cgS cgS cgS -juT -juT +eQn +eQn kjD kjD kjD aoY kjD kjD -juT +eQn cgS cgS cgS @@ -67061,7 +67058,7 @@ cgS cgS cgS cgS -juT +eQn uYy uYy uYy @@ -67245,7 +67242,7 @@ cgS cgS cgS cgS -juT +eQn jqf jqf jqf @@ -67257,7 +67254,7 @@ jqf jqf jqf iKs -juT +eQn cgS cgS cgS @@ -67267,23 +67264,23 @@ cgS cgS cgS cgS -juT +eQn kjD kjD kjD kjD gLO aoY -juT -juT +eQn +eQn cgS cgS -nnp -juT -juT -juT -juT -juT +ieX +eQn +eQn +eQn +eQn +eQn uYy uYy uYy @@ -67467,7 +67464,7 @@ cgS cgS cgS cgS -juT +eQn jqf lnR jqf @@ -67479,7 +67476,7 @@ jqf jqf lnR jqf -juT +eQn cgS cgS cgS @@ -67489,7 +67486,7 @@ cgS cgS cgS cgS -juT +eQn kjD kjD kjD @@ -67497,10 +67494,10 @@ kjD kjD kjD kjD -juT -juT -juT -nnp +eQn +eQn +eQn +ieX kjD tzY tzY @@ -67689,8 +67686,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -67700,8 +67697,8 @@ lnR jqf jqf lnR -juT -juT +eQn +eQn cgS cgS cgS @@ -67711,8 +67708,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn aoY kjD kjD @@ -67720,8 +67717,8 @@ aoY ihG kjD kjD -juT -juT +eQn +eQn tOc kjD kjD @@ -67912,7 +67909,7 @@ cgS cgS cgS cgS -juT +eQn jqf lnR jqf @@ -67923,7 +67920,7 @@ jqf jqf jqf jqf -juT +eQn cgS cgS cgS @@ -67934,7 +67931,7 @@ cgS cgS cgS cgS -juT +eQn kjD kjD kjD @@ -67942,7 +67939,7 @@ kjD kjD kjD kjD -juT +eQn kjD tOc aoY @@ -68134,8 +68131,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn uLt jqf lnR @@ -68145,7 +68142,7 @@ uLt lnR jqf jqf -juT +eQn cgS cgS cgS @@ -68155,8 +68152,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn kjD kjD kTt @@ -68357,17 +68354,17 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf jqf jqf jqf -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS @@ -68375,9 +68372,9 @@ cgS hsE cgS cgS -juT -juT -juT +eQn +eQn +eQn jqf kjD kjD @@ -68580,14 +68577,14 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf lnR jqf jqf -juT +eQn cgS cgS cgS @@ -68596,16 +68593,16 @@ cgS cgS hsE cgS -juT -juT +eQn +eQn uLt jqf jqf aoY kjD kTt -juT -juT +eQn +eQn kjD kjD kjD @@ -68803,13 +68800,13 @@ cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn jqf jqf -juT -juT +eQn +eQn cgS cgS cgS @@ -68817,25 +68814,25 @@ cgS cgS cgS hsE -juT -juT +eQn +eQn jqf jqf jqf jqf kjD -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn kjD kjD kjD -nnp -juT -juT -juT +ieX +eQn +eQn +eQn tzY tzY cIQ @@ -69026,12 +69023,12 @@ cgS cgS cgS cgS -juT +eQn jqf jqf jqf lnR -juT +eQn cgS cgS cgS @@ -69039,26 +69036,26 @@ cgS cgS cgS hsE -nnp +ieX laW laW prh laW prh tOc -nnp +ieX hsE hsE hsE -nnp -nnp +ieX +ieX tOc -nnp -nnp +ieX +ieX cgS cgS -juT -juT +eQn +eQn tzY cIQ cIQ @@ -69248,39 +69245,39 @@ cgS cgS cgS cgS -juT +eQn jqf lnR jqf jqf -juT -juT +eQn +eQn cgS cgS cgS cgS cgS cgS -juT +eQn jqf jqf jqf jqf jqf -juT -juT +eQn +eQn cgS cgS cgS cgS -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS -juT +eQn tzY cIQ cIQ @@ -69470,26 +69467,26 @@ cgS cgS cgS cgS -juT +eQn jqf jqf jqf jqf jqf -juT -juT +eQn +eQn cgS cgS cgS cgS cgS -juT +eQn jqf jqf jqf lnR jqf -juT +eQn cgS cgS cgS @@ -69502,7 +69499,7 @@ cgS cgS cgS cgS -juT +eQn cIQ cIQ cIQ @@ -69692,26 +69689,26 @@ cgS cgS cgS cgS -juT +eQn jqf jqf uLt jqf jqf uLt -juT -juT +eQn +eQn cgS cgS -juT -juT -juT +eQn +eQn +eQn jqf lnR jqf jqf -juT -juT +eQn +eQn cgS cgS cgS @@ -69724,7 +69721,7 @@ cgS cgS cgS cgS -juT +eQn tzY tzY bzm @@ -69914,25 +69911,25 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf lnR jqf jqf jqf jqf -juT +eQn cgS cgS -juT +eQn jqf uLt jqf jqf uLt -juT -juT +eQn +eQn cgS cgS cgS @@ -69946,8 +69943,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tzY cIQ jIg @@ -70137,23 +70134,23 @@ cgS cgS cgS cgS -juT +eQn jqf jqf jqf lnR jqf jqf -juT -juT -juT -juT +eQn +eQn +eQn +eQn lnR jqf jqf jqf -juT -juT +eQn +eQn cgS cgS cgS @@ -70168,8 +70165,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tzY cIQ jIg @@ -70359,22 +70356,22 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf qcB jqf jqf jqf jqf -juT -juT +eQn +eQn jqf jqf jqf jqf -juT -juT +eQn +eQn cgS cgS cgS @@ -70390,7 +70387,7 @@ cgS cgS cgS cgS -juT +eQn tzY tzY cIQ @@ -70580,8 +70577,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf iKs iKs @@ -70595,8 +70592,8 @@ jqf jqf nYL jqf -juT -juT +eQn +eQn cgS cgS cgS @@ -70612,7 +70609,7 @@ cgS cgS cgS cgS -juT +eQn tzY tzY qDM @@ -70802,7 +70799,7 @@ hsE hsE hsE hsE -nnp +ieX laW laW prQ @@ -70818,24 +70815,24 @@ jqf jqf jqf jqf -juT +eQn cgS cgS cgS cgS cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn cgS cgS cgS cgS cgS -juT -juT +eQn +eQn tzY cIQ jIg @@ -71023,8 +71020,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf gGl jqf @@ -71040,23 +71037,23 @@ jqf jqf lnR jqf -juT -juT +eQn +eQn cgS cgS cgS cgS -juT -juT +eQn +eQn kjD kjD -juT -juT -juT +eQn +eQn +eQn cgS cgS -juT -juT +eQn +eQn sCz tzY cIQ @@ -71244,8 +71241,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -71254,8 +71251,8 @@ laW lnR jqf jqf -juT -juT +eQn +eQn jqf jqf jqf @@ -71263,21 +71260,21 @@ jqf jqf jqf jqf -juT +eQn cgS cgS cgS cgS -juT +eQn kjD aoY kjD kjD kjD -juT -juT -juT -juT +eQn +eQn +eQn +eQn tzY tzY cIQ @@ -71463,10 +71460,10 @@ cgS cgS cgS cgS -juT -juT -juT -juT +eQn +eQn +eQn +eQn jqf ntZ jqf @@ -71475,29 +71472,29 @@ ldC laW jqf wnr -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn jqf jqf jqf lnR jqf -juT -juT +eQn +eQn cgS hsE hsE -nnp +ieX tOc tOc tOc tOc tOc -nnp -nnp +ieX +ieX kjD kjD cIQ @@ -71684,8 +71681,8 @@ hsE cgS cgS cgS -juT -juT +eQn +eQn jqf uLt jqf @@ -71697,22 +71694,22 @@ jqf mYK jqf uLt -juT +eQn cgS cgS cgS -juT -juT +eQn +eQn uLt jqf jqf jqf uLt -juT -juT +eQn +eQn hsE -juT -juT +eQn +eQn kTt kjD aoY @@ -71906,7 +71903,7 @@ hsE cgS cgS cgS -juT +eQn jqf jqf jqf @@ -71917,23 +71914,23 @@ jqf qSw lnR laW -juT -juT -juT +eQn +eQn +eQn cgS cgS cgS cgS -juT +eQn jqf jqf jqf jqf jqf jqf -juT -nnp -juT +eQn +ieX +eQn kjD kjD kjD @@ -72127,8 +72124,8 @@ cgS hsE cgS cgS -juT -juT +eQn +eQn lnR jqf jqf @@ -72138,23 +72135,23 @@ jqf lnR jqf jqf -nnp -juT +ieX +eQn cgS cgS cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf lnR jqf jqf kjD -nnp +ieX kjD kjD kjD @@ -72348,8 +72345,8 @@ cgS cgS hsE cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -72358,9 +72355,9 @@ lnR jqf jqf jqf -juT -juT -nnp +eQn +eQn +ieX cgS cgS cgS @@ -72369,8 +72366,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -72570,7 +72567,7 @@ cgS cgS hsE cgS -juT +eQn jqf lnR jqf @@ -72579,8 +72576,8 @@ drL jqf jqf jqf -juT -juT +eQn +eQn cgS hsE cgS @@ -72592,8 +72589,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf uLt jqf @@ -72610,8 +72607,8 @@ kjD cpa ihG kjD -juT -juT +eQn +eQn tzY tzY ilb @@ -72792,7 +72789,7 @@ cgS cgS hsE cgS -juT +eQn jqf jqf jqf @@ -72801,8 +72798,8 @@ jqf jqf jqf jqf -juT -juT +eQn +eQn cgS hsE cgS @@ -72815,8 +72812,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf kjD aoY @@ -72831,9 +72828,9 @@ kjD kjD tOc kjD -juT -juT -juT +eQn +eQn +eQn tzY cIQ ilb @@ -73014,7 +73011,7 @@ cgS cgS hsE cgS -juT +eQn uLt lnR jqf @@ -73024,7 +73021,7 @@ jqf jqf jqf jqf -juT +eQn cgS hsE cgS @@ -73038,8 +73035,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn kjD kjD tOc @@ -73049,13 +73046,13 @@ kjD kjD kjD kjD -juT -juT -nnp -juT -juT +eQn +eQn +ieX +eQn +eQn cgS -juT +eQn tzY cIQ jIg @@ -73236,8 +73233,8 @@ cgS cgS hsE cgS -juT -juT +eQn +eQn jqf jqf jqf @@ -73246,7 +73243,7 @@ jqf jqf lnR jqf -juT +eQn cgS hsE cgS @@ -73261,23 +73258,23 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn kjD tOc aoY kjD kjD -juT +eQn kjD -juT -juT +eQn +eQn cgS hsE cgS cgS cgS -juT +eQn cIQ sCz jIg @@ -73459,8 +73456,8 @@ cgS hsE cgS cgS -juT -juT +eQn +eQn jqf pyu uLt @@ -73468,7 +73465,7 @@ lnR jqf uLt jqf -juT +eQn cgS hsE cgS @@ -73484,23 +73481,23 @@ cgS cgS cgS cgS -juT +eQn kjD tOc kjD kjD kTt -juT -juT -juT +eQn +eQn +eQn cgS cgS hsE cgS cgS cgS -juT -juT +eQn +eQn tzY tyz pKS @@ -73682,15 +73679,15 @@ hsE cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf jqf jqf -juT -juT +eQn +eQn cgS hsE cgS @@ -73706,13 +73703,13 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn tOc tOc cpa -nnp -nnp +ieX +ieX hsE hsE hsE @@ -73722,8 +73719,8 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn ndb ilb pKS @@ -73905,13 +73902,13 @@ cgS cgS cgS cgS -juT -juT +eQn +eQn jqf jqf jqf -juT -juT +eQn +eQn cgS cgS hsE @@ -73929,11 +73926,11 @@ cgS cgS cgS cgS -juT -juT -juT -juT -juT +eQn +eQn +eQn +eQn +eQn cgS cgS cgS @@ -74128,11 +74125,11 @@ hsE hsE hsE hsE -nnp -nnp -nnp -nnp -nnp +ieX +ieX +ieX +ieX +ieX hsE hsE hsE diff --git a/_maps/map_files/oscar_outpost/oscar_outpost.dmm b/_maps/map_files/oscar_outpost/oscar_outpost.dmm index 4384c613e13d9..1993cfe4bf733 100644 --- a/_maps/map_files/oscar_outpost/oscar_outpost.dmm +++ b/_maps/map_files/oscar_outpost/oscar_outpost.dmm @@ -1876,7 +1876,6 @@ /turf/open/floor, /area/oscar_outpost/village) "np" = ( -/obj/machinery/power/apc/hyper, /obj/structure/cable, /obj/effect/spawner/random/engineering/structure/powergenerator/superweighted, /turf/open/floor/tile/dark, diff --git a/_maps/map_files/slumbridge/slumbridge.dmm b/_maps/map_files/slumbridge/slumbridge.dmm index 0ce27b6e43838..8eacdbb0a055f 100644 --- a/_maps/map_files/slumbridge/slumbridge.dmm +++ b/_maps/map_files/slumbridge/slumbridge.dmm @@ -1227,14 +1227,6 @@ dir = 4 }, /area/slumbridge/outside/northeast) -"aYw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/hidden, -/turf/open/floor/tile/dark, -/area/slumbridge/inside/colony/dorms) "aYB" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison/plate, @@ -2066,9 +2058,6 @@ /obj/structure/disposalpipe/segment/corner{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3{ - dir = 10 - }, /turf/open/floor/plating, /area/slumbridge/inside/hydrotreatment) "bCz" = ( @@ -2258,12 +2247,6 @@ }, /turf/open/floor/plating/asteroidplating, /area/slumbridge/inside/zeta/south) -"bIO" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible/layer1{ - dir = 8 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "bIY" = ( /obj/structure/fence, /obj/structure/flora/jungle/vines/heavy, @@ -3305,16 +3288,6 @@ /obj/machinery/computer/body_scanconsole, /turf/open/floor/tile/blue, /area/slumbridge/inside/houses/surgery/garbledradio) -"cwu" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 5; - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible/layer2{ - dir = 8 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "cwz" = ( /obj/machinery/door/airlock/mainship/secure/open, /obj/effect/turf_decal/tracks/wheels/bloody{ @@ -4616,10 +4589,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/slumbridge/inside/colony/construction) -"dxS" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "dxX" = ( /obj/effect/landmark/lv624/fog_blocker/xeno_spawn, /turf/open/floor/plating/ground/mars/random/dirt, @@ -5573,19 +5542,6 @@ dir = 6 }, /area/slumbridge/inside/colony/southerndome) -"elb" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 9; - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 8 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "elw" = ( /obj/machinery/vending/snack, /turf/open/floor/tile/blue/whitebluefull, @@ -6162,17 +6118,6 @@ /turf/open/floor/tile/yellow/full, /area/slumbridge/inside/engi/central) "eKY" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 5; - pixel_x = 5; - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 5 - }, /obj/structure/disposalpipe/segment, /obj/structure/lattice, /turf/open/floor/plating, @@ -6603,10 +6548,6 @@ dir = 1 }, /area/slumbridge/inside/prison/innerring) -"fdY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "fek" = ( /obj/structure/cable, /obj/effect/ai_node, @@ -8519,10 +8460,7 @@ /turf/open/ground/grass/weedable, /area/slumbridge/outside/southeast) "gzE" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, /obj/structure/disposalpipe/segment/corner, -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3, /obj/structure/lattice, /turf/open/floor/plating, /area/slumbridge/inside/hydrotreatment) @@ -10477,23 +10415,6 @@ /obj/structure/prop/mainship/gelida/powerccable, /turf/open/floor/plating/ground/snow/layer1, /area/slumbridge/outside/southwest) -"hWf" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos{ - dir = 8; - pixel_x = 3; - pixel_y = -4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 8; - pixel_x = -8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - dir = 8; - pixel_x = 13 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "hWn" = ( /obj/structure/table/mainship, /obj/structure/prop/mainship/minigun_crate, @@ -13421,19 +13342,6 @@ dir = 8 }, /area/slumbridge/outside/northwest) -"kaS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3{ - dir = 10; - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "kbn" = ( /obj/structure/flora/ausbushes/lavendergrass, /turf/open/ground/grass/weedable/patch, @@ -15136,6 +15044,10 @@ /obj/effect/spawner/random/misc/structure/stool, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/colonist/regular, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, /turf/open/floor/plating/heatinggrate, /area/slumbridge/inside/colony/dorms) "lpI" = ( @@ -15143,14 +15055,6 @@ /turf/open/floor/plating/ground/snow, /area/slumbridge/outside/southwest) "lpM" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 10; - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/structure/lattice, /turf/open/floor/plating, /area/slumbridge/inside/hydrotreatment) @@ -18869,13 +18773,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/slumbridge/inside/sombase/east) -"nXy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "nXF" = ( /obj/structure/cable, /obj/effect/ai_node, @@ -21869,15 +21766,6 @@ /obj/structure/cable, /turf/open/floor/tile/blue, /area/slumbridge/inside/medical/chemistry) -"qkz" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 8 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "qll" = ( /obj/structure/barricade/snow, /turf/open/floor/plating/ground/snow/layer2, @@ -22507,19 +22395,6 @@ /obj/structure/cable, /turf/open/floor/mainship/silver, /area/slumbridge/inside/colony/northerndome) -"qIU" = ( -/obj/machinery/atmospherics/components/trinary/mixer/on/layer3, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 8; - pixel_x = -3 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3{ - dir = 8; - pixel_x = -3 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible/layer2, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "qJo" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/asteroidfloor, @@ -23974,7 +23849,6 @@ /turf/open/floor/tile/dark, /area/slumbridge/inside/zeta/south) "rKf" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, /obj/structure/lattice, /obj/machinery/light{ dir = 4 @@ -24943,24 +24817,6 @@ /obj/structure/cable, /turf/open/floor/tile/brown, /area/slumbridge/inside/houses/dorms) -"stY" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos{ - dir = 4; - pixel_x = -4 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 8; - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - pixel_y = -6 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) "sux" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bottle/dylovene, @@ -25026,14 +24882,7 @@ /turf/open/floor/prison, /area/slumbridge/inside/prison/outerringnorth) "swK" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - dir = 9 - }, /obj/structure/lattice, /obj/machinery/light{ dir = 4 @@ -25114,7 +24963,6 @@ /turf/open/floor/plating, /area/slumbridge/inside/engi/south) "sAl" = ( -/obj/machinery/atmospherics/pipe/manifold/purple/visible/layer1, /obj/structure/disposalpipe/segment, /obj/effect/ai_node, /turf/open/floor/plating, @@ -26029,10 +25877,13 @@ /turf/open/floor/plating/ground/snow/layer0, /area/slumbridge/outside/southwest) "tlu" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/lattice, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating/heatinggrate, +/area/slumbridge/inside/colony/dorms) "tlS" = ( /obj/effect/landmark/excavation_site_spawner, /turf/open/floor/plating/ground/mars/random/cave/darker, @@ -26663,17 +26514,11 @@ /turf/open/floor/elevatorshaft, /area/slumbridge/inside/zeta/north) "tII" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3{ - pixel_y = 8 +/obj/machinery/atmospherics/pipe/manifold/green/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer3, -/obj/structure/lattice, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) +/turf/open/floor/tile/dark, +/area/slumbridge/inside/colony/dorms) "tJb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/window/reinforced{ @@ -29264,14 +29109,11 @@ /turf/open/floor/plating, /area/slumbridge/inside/engi/west) "vHI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/green/hidden{ + dir = 8 }, -/turf/open/floor/plating, -/area/slumbridge/inside/hydrotreatment) +/turf/open/floor/tile/dark, +/area/slumbridge/inside/colony/dorms) "vHO" = ( /obj/machinery/smartfridge/chemistry/nopower, /turf/open/floor/plating, @@ -32907,15 +32749,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison/darkbrown/full, /area/slumbridge/inside/houses/swcargo) -"ymi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/hidden, -/turf/open/floor/tile/dark, -/area/slumbridge/inside/colony/dorms) (1,1,1) = {" dHe @@ -36958,13 +36791,13 @@ feW feW buv lFT -kaS -fdY -vHI -dxS -bIO -nXy -elb +nlB +lFT +lFT +lFT +lFT +nlB +lFT lyP feW feW @@ -37140,12 +36973,12 @@ snj dIA ujc bCd -fdY -qIU -cwu -hWf +lFT +lFT +lFT +lFT nlB -qkz +lFT lyP nst feW @@ -37323,10 +37156,10 @@ nTY kzb kzb kzb -stY +kzb sAl tzA -qkz +lFT lyP ouI ouI @@ -37501,11 +37334,11 @@ feW feW lyP rKf -tlu -tlu -tlu lpM -tII +lpM +lpM +lpM +lpM gzE swK lyP @@ -45886,7 +45719,7 @@ tti tFo gZD eND -juU +tlu mUy tti nCl @@ -46065,9 +45898,9 @@ rIp uTW jXX xTb -aYw -svM opq +svM +tII hbY jXX uls @@ -46789,9 +46622,9 @@ rIp uls jXX xTb -opq +vHI svM -ymi +hbY hbY jXX uls diff --git a/_maps/modularmaps/oscaroutpost/oscarnorthvar1.dmm b/_maps/modularmaps/oscaroutpost/oscarnorthvar1.dmm index 7edd580102042..f26d90bc8c4ec 100644 --- a/_maps/modularmaps/oscaroutpost/oscarnorthvar1.dmm +++ b/_maps/modularmaps/oscaroutpost/oscarnorthvar1.dmm @@ -4357,19 +4357,6 @@ dir = 4 }, /area/oscar_outpost/outside/northeast) -"Yr" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - name = "trench lining"; - pixel_y = 1 - }, -/obj/structure/barricade/sandbags{ - dir = 8; - name = "trench lining"; - pixel_y = 1 - }, -/turf/open/floor/plating/ground/dirt2, -/area/oscar_outpost/outside/northeast) "Yu" = ( /turf/open/floor/plating/ground/dirtgrassborder/corner{ dir = 4 @@ -26924,7 +26911,7 @@ CE CE YZ sV -Yr +Rb Rb Rb Rb diff --git a/_maps/modularmaps/oscaroutpost/oscarnorthvar2.dmm b/_maps/modularmaps/oscaroutpost/oscarnorthvar2.dmm index 583fb87c41747..44e899c095f81 100644 --- a/_maps/modularmaps/oscaroutpost/oscarnorthvar2.dmm +++ b/_maps/modularmaps/oscaroutpost/oscarnorthvar2.dmm @@ -259,14 +259,6 @@ }, /turf/open/floor/plating/ground/dirt2, /area/oscar_outpost/outside/northeast) -"cy" = ( -/obj/structure/table/reinforced, -/obj/structure/barricade/metal, -/obj/structure/barricade/metal, -/obj/structure/barricade/metal, -/obj/structure/barricade/metal, -/turf/open/floor/plating, -/area/oscar_outpost/outside/north) "cz" = ( /turf/open/floor/plating/ground/dirt2, /area/oscar_outpost/outside/northeast) @@ -1680,19 +1672,6 @@ /obj/effect/spawner/random/weaponry/explosive/plastiqueexplosive, /turf/open/floor/plating/ground/dirt2, /area/oscar_outpost/outside/west) -"qC" = ( -/obj/structure/barricade/sandbags{ - dir = 4; - name = "trench lining"; - pixel_y = 1 - }, -/obj/structure/barricade/sandbags{ - dir = 4; - name = "trench lining"; - pixel_y = 1 - }, -/turf/open/floor/plating/ground/dirt2, -/area/oscar_outpost/outside/northwest) "qH" = ( /turf/open/floor/plating/ground/dirtgrassborder{ dir = 4 @@ -5430,19 +5409,6 @@ }, /turf/open/floor/plating/ground/dirt2, /area/oscar_outpost/outside/northeast) -"Yr" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - name = "trench lining"; - pixel_y = 1 - }, -/obj/structure/barricade/sandbags{ - dir = 8; - name = "trench lining"; - pixel_y = 1 - }, -/turf/open/floor/plating/ground/dirt2, -/area/oscar_outpost/outside/northeast) "Yu" = ( /obj/structure/platform/rockcliff{ dir = 1 @@ -6878,7 +6844,7 @@ eC eC ZD Tj -qC +Tj Tj Rx eC @@ -20646,7 +20612,7 @@ Zl th Wi ZE -cy +Nh ZE ZE ZE @@ -28102,7 +28068,7 @@ Pv Pv YZ FC -Yr +Az Az Az Kk diff --git a/_maps/shuttles/vehicle_supply.dmm b/_maps/shuttles/vehicle_supply.dmm new file mode 100644 index 0000000000000..b57658828762a --- /dev/null +++ b/_maps/shuttles/vehicle_supply.dmm @@ -0,0 +1,116 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"b" = ( +/turf/open/floor/plating, +/area/shuttle/vehicle_supply) +"c" = ( +/obj/docking_port/mobile/supply/vehicle, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"f" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"l" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"C" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"E" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"I" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"K" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"M" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"Q" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) + +(1,1,1) = {" +I +l +l +l +M +"} +(2,1,1) = {" +K +b +a +b +E +"} +(3,1,1) = {" +K +a +c +a +E +"} +(4,1,1) = {" +K +b +a +b +E +"} +(5,1,1) = {" +Q +C +C +C +f +"} diff --git a/code/__DEFINES/_helpers.dm b/code/__DEFINES/_helpers.dm index f1b1b21df3308..d9f75fe8e9d80 100644 --- a/code/__DEFINES/_helpers.dm +++ b/code/__DEFINES/_helpers.dm @@ -32,3 +32,7 @@ // Custom types that we define don't get a unique id, but this is useful for identifying // types that don't normally have a way to run istype() on them. #define TYPEID(thing) copytext(REF(thing), 4, 6) + +/// 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/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 99dd0755d1f66..e42eff730e996 100755 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -82,6 +82,8 @@ ///called when an AI is requested by a holopad #define COMSIG_GLOB_HOLOPAD_AI_CALLED "!holopad_calling" +///Sent when mob is deployed via a patrol point +#define COMSIG_GLOB_HVH_DEPLOY_POINT_ACTIVATED "!hvh_deploy_point_activated" ///Opens the TGMC shipside shutters on campaign #define COMSIG_GLOB_OPEN_CAMPAIGN_SHUTTERS_TGMC "!open_campaign_shutters_tgmc" ///Opens the SOM shipside shutters on campaign @@ -202,6 +204,10 @@ #define COMSIG_ATOM_ATTACKBY_ALTERNATE "atom_attackby_alternate" //from base of atom/attackby_alternate(): (/obj/item, /mob/living) #define COMPONENT_NO_AFTERATTACK (1<<0) //Return this in response if you don't want afterattack to be called +///from base of atom/max_stack_merging(): (obj/item/stack/S) +#define ATOM_MAX_STACK_MERGING "atom_max_stack_merging" +///from base of atom/recalculate_storage_space(): () +#define ATOM_RECALCULATE_STORAGE_SPACE "atom_recalculate_storage_space" #define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted) #define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable/entering, atom/oldloc, list/atom/oldlocs) #define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, direction) @@ -211,7 +217,6 @@ #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir) #define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next) #define COMPONENT_BLOCK_REACH (1<<0) -#define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" //from base of atom/screwdriver_act(): (mob/living/user, obj/item/I) #define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(mob/living/user) #define COMSIG_ATOM_ATTACK_HAND_ALTERNATE "atom_attack_hand_alternate" //from base of /atom/attack_hand_alternate(mob/living/user) #define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost) @@ -257,6 +262,8 @@ #define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" #define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target) +///from base of atom/contents_explosion(): (severity) +#define COMSIG_CONTENTS_EX_ACT "contents_ex_act" #define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color) #define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" //from base of atom/bullet_act(): (/obj/projectile) #define COMSIG_ATOM_INITIALIZED_ON "atom_initialized_on" //called from atom/Initialize() of target: (atom/target) @@ -407,6 +414,12 @@ #define COMSIG_ITEM_UNDEPLOY "item_undeploy" //from base of /obj/machinery/deployable +///from base of obj/item/quick_equip(): (mob/user) +#define COMSIG_ITEM_QUICK_EQUIP "item_quick_equip" +// Return signals for /datum/storage/proc/on_quick_equip_request + #define COMSIG_QUICK_EQUIP_HANDLED (1<<0) //Our signal handler took care of quick equip + #define COMSIG_QUICK_EQUIP_BLOCKED (1<<1) //Our signal handler blocked the quick equip, but does not want to block the remainder of the proc + #define COMSIG_ATTACHMENT_ATTACHED "attachment_attached" #define COMSIG_ATTACHMENT_ATTACHED_TO_ITEM "attachment_attached_to_item" #define COMSIG_ATTACHMENT_DETACHED "attachment_detached" @@ -861,6 +874,7 @@ #define COMSIG_XENOABILITY_TOGGLE_STEALTH "xenoability_toggle_stealth" #define COMSIG_XENOABILITY_TOGGLE_DISGUISE "xenoability_toggle_disguise" #define COMSIG_XENOABILITY_MIRAGE "xenoability_mirage" +#define COMSIG_XENOABILITY_MIRAGE_SWAP "xenoability_mirage_swap" #define COMSIG_XENOABILITY_SCREECH "xenoability_screech" #define COMSIG_XENOABILITY_PSYCHIC_WHISPER "xenoability_psychic_whisper" @@ -944,13 +958,15 @@ #define COMSIG_XENOABILITY_DREADFULPRESENCE "xenoability_dreadfulpresence" #define COMSIG_XENOABILITY_PINCUSHION "xenoability_pincushion" #define COMSIG_XENOABILITY_FLAY "xenoability_flay" -#define COMSIG_XENOABILITY_SENDORDERS "xenoability_sendorders" +#define COMSIG_XENOABILITY_UNLEASHPUPPETS "xenoability_unleashpuppets" +#define COMSIG_XENOABILITY_RECALLPUPPETS "xenoability_recallpuppets" #define COMSIG_XENOABILITY_BESTOWBLESSINGS "xenoability_giveblessings" #define COMSIG_XENOABILITY_BEHEMOTH_ROLL "xenoability_behemoth_roll" #define COMSIG_XENOABILITY_LANDSLIDE "xenoability_landslide" #define COMSIG_XENOABILITY_EARTH_RISER "xenoability_earth_riser" #define COMSIG_XENOABILITY_EARTH_RISER_ALTERNATE "xenoability_earth_riser_alternate" +#define COMSIG_XENOABILITY_EARTH_PILLAR_THROW "xenoability_earth_pillar_throw" #define COMSIG_XENOABILITY_SEISMIC_FRACTURE "xenoability_seismic_fracture" #define COMSIG_XENOABILITY_PRIMAL_WRATH "xenoability_primal_wrath" diff --git a/code/__DEFINES/equipment.dm b/code/__DEFINES/equipment.dm index 1bb08eff3222a..dde8f0f01e231 100644 --- a/code/__DEFINES/equipment.dm +++ b/code/__DEFINES/equipment.dm @@ -108,6 +108,9 @@ #define IN_INVENTORY (1<<19) ///This item is used for autobalance calculations or excluded, such as valhalla items #define AUTOBALANCE_CHECK (1<<20) +///This item is in any storage +#define IN_STORAGE (1<<21) + //storage_flags ///If a storage container can be restocked into a vendor diff --git a/code/__DEFINES/factions.dm b/code/__DEFINES/factions.dm index 68e18165ac074..7042706ceb6ca 100644 --- a/code/__DEFINES/factions.dm +++ b/code/__DEFINES/factions.dm @@ -82,6 +82,24 @@ GLOBAL_LIST_INIT(faction_to_iff, list( FACTION_PIRATE = PIRATE_IFF, )) +///Acronyms for each faction, or the shortest name possible +GLOBAL_LIST_INIT(faction_to_acronym, list( + FACTION_NEUTRAL = "Neutral", + FACTION_TERRAGOV = "TGMC", + FACTION_SPECFORCE = "SRF", + FACTION_NANOTRASEN = "PMC", + FACTION_FREELANCERS = "FRE", + FACTION_CLF = "CLF", + FACTION_DEATHSQUAD = "Deathsquad", + FACTION_IMP = "IMP", + FACTION_UNKN_MERCS = "Unknown", + FACTION_SECTOIDS = "Sectoids", + FACTION_SOM = "SOM", + FACTION_ICC = "ICC", + FACTION_USL = "USL", + FACTION_PIRATE = "Pirates", +)) + ///List of correspond factions to data hud GLOBAL_LIST_INIT(faction_to_data_hud, list( FACTION_TERRAGOV = DATA_HUD_SQUAD_TERRAGOV, diff --git a/code/__DEFINES/greyscale_guns.dm b/code/__DEFINES/greyscale_guns.dm deleted file mode 100644 index eb4ca3391bda6..0000000000000 --- a/code/__DEFINES/greyscale_guns.dm +++ /dev/null @@ -1,39 +0,0 @@ -#define GUN_ICONSTATE_LOADED "loaded" -#define GUN_ICONSTATE_UNLOADED "unloaded" -#define GUN_ICONSTATE_UNRACKED "unracked" -#define GUN_ICONSTATE_OPEN "open" -#define GUN_ICONSTATE_PUMP "pump" - -#define GUN_PALETTE_TAN "#3F382E#61574A#807360#978872" -#define GUN_PALETTE_RED "#421010#601e1e#762525#9b3a28" -#define GUN_PALETTE_DARK_RED "#301a1d#422628#5d3839#815150" -#define GUN_PALETTE_PINK "#451639#5c3352#8a4077#9e6284" -#define GUN_PALETTE_SILVER "#545454#878787#c5d8da#e0f5f6" -#define GUN_PALETTE_DRAB "#292211#383d1e#665F44#726B52" -#define GUN_PALETTE_GREEN "#29451d#455f45#557251#83a260" -#define GUN_PALETTE_BLACK "#0B0B0B#121212#1D1D1D#323232" -#define GUN_PALETTE_GREY "#3b3b3b#585858#8e8e8e#c5c5c5" -#define GUN_PALETTE_BROWN "#2f271a#47382b#724d2a#8b6d50" -#define GUN_PALETTE_BLUE "#2a2835#303749#4e576c#838485" -#define GUN_PALETTE_GOLD "#4c3a16#7b691e#bb970e#ffe000" -#define GUN_PALETTE_PURPLE "#222046#36386b#535185#726dc2" -#define GUN_PALETTE_AQUA "#264188#28599a#1c96c4#36f5e9" -#define GUN_PALETTE_DARK_GREEN "#1a301a#264227#385d39#508151" - -#define GUN_PALETTE_LIST list( \ - "Tan" = GUN_PALETTE_TAN, \ - "Red" = GUN_PALETTE_RED, \ - "Dark Red" = GUN_PALETTE_DARK_RED, \ - "Pink" = GUN_PALETTE_PINK, \ - "Purple" = GUN_PALETTE_PURPLE, \ - "Silver" = GUN_PALETTE_SILVER, \ - "Drab" = GUN_PALETTE_DRAB, \ - "Green" = GUN_PALETTE_GREEN, \ - "Dark Green" = GUN_PALETTE_DARK_GREEN, \ - "Black" = GUN_PALETTE_BLACK, \ - "Grey" = GUN_PALETTE_GREY, \ - "Brown" = GUN_PALETTE_BROWN, \ - "Gun Metal Blue" = GUN_PALETTE_BLUE, \ - "Gold" = GUN_PALETTE_GOLD, \ - "Aqua" = GUN_PALETTE_AQUA, \ -) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index b904d9c623965..3d6a72616c9f4 100755 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -183,7 +183,9 @@ GLOBAL_VAR_INIT(refid_filter, TYPEID(filter(type="angular_blur"))) #define isgrenade(A) (istype(A, /obj/item/explosive/grenade)) -#define isstorage(A) (istype(A, /obj/item/storage)) +#define isdatumstorage(A) (istype(A, /datum/storage)) + +#define isstorageobj(A) (istype(A, /obj/item/storage)) #define isitemstack(A) (istype(A, /obj/item/stack)) diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 0b6bfd2c39e48..6395797655101 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -164,7 +164,6 @@ GLOBAL_LIST_INIT(jobs_fallen_marine, typecacheof(list(/datum/job/fallen/marine), #define SMARTIE_POINTS_HIGH 3 #define SYNTH_POINTS_REGULAR 1 #define MECH_POINTS_REGULAR 1 -#define ARMORED_VEHICLE_POINTS_REGULAR 1 #define VETERAN_POINTS_REGULAR 1 diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index 514460a27c134..fd2f14c6d654d 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -586,16 +586,12 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/under/rank/medical/green = list(CAT_STD, "Medical scrubs (green)", 0, "black"), /obj/item/clothing/under/rank/medical/purple = list(CAT_STD, "Medical scrubs (purple)", 0, "black"), /obj/item/clothing/under/marine/officer/engi = list(CAT_STD, "Engineering uniform", 0, "black"), - /obj/item/clothing/under/marine/officer/logistics = list(CAT_STD, "Officer uniform", 0, "black"), - /obj/item/clothing/under/marine/whites = list(CAT_STD, "TGMC dress uniform", 0, "black"), /obj/item/clothing/under/marine/officer/pilot = list(CAT_STD, "Pilot bodysuit", 0, "black"), /obj/item/clothing/under/marine/mp = list(CAT_STD, "Military police uniform", 0, "black"), - /obj/item/clothing/under/marine/officer/warden = list(CAT_STD, "Marine Officer uniform", 0, "black"), /obj/item/clothing/under/marine/officer/researcher = list(CAT_STD, "Researcher outfit", 0, "black"), /obj/item/clothing/under/rank/chef = list(CAT_STD, "Chef uniform", 0, "black"), /obj/item/clothing/under/rank/bartender = list(CAT_STD, "Bartender uniform", 0, "black"), /obj/item/clothing/under/rank/chef/altchef = list(CAT_STD, "Red Chef uniform", 0, "black"), - /obj/item/clothing/under/rank/vice = list(CAT_STD, "Vice Officer's uniform", 0, "black"), /obj/item/clothing/under/rank/janitor = list(CAT_STD, "Janitor uniform", 0, "black"), /obj/item/clothing/under/rank/det = list(CAT_STD, "Detective uniform", 0, "black"), /obj/item/clothing/under/rank/dispatch = list(CAT_STD, "Dispatch uniform", 0, "black"), @@ -603,21 +599,20 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/under/CM_uniform = list(CAT_STD, "Colonial Marshal uniform", 0, "black"), /obj/item/clothing/under/gentlesuit = list(CAT_STD, "Gentleman's Suit", 0, "black"), /obj/item/clothing/under/sl_suit = list(CAT_STD, "Amish Suit", 0, "black"), - /obj/item/clothing/under/kilt = list(CAT_STD, "Kilt", 0, "black"), /obj/item/clothing/under/waiter = list(CAT_STD, "Waiter's uniform", 0, "black"), /obj/item/clothing/suit/modular/xenonauten/pilot = list(CAT_SMR, "M70 flak jacket", 0, "synth-rcmarmstorage"), - /obj/item/clothing/suit/armor/bulletproof = list(CAT_SMR, "Bulletproof Vest", 0, "synth-armor"), - /obj/item/clothing/suit/surgical = list(CAT_SMR, "Surgical apron", 0, "synth-storage"), - /obj/item/clothing/suit/storage/labcoat = list(CAT_SMR, "Labcoat", 0, "synth-storage"), - /obj/item/clothing/suit/storage/labcoat/researcher = list(CAT_SMR, "Researcher's labcoat", 0, "synth-storage"), - /obj/item/clothing/suit/storage/hazardvest = list(CAT_SMR, "Orange reflective safety vest", 0, "synth-storage"), - /obj/item/clothing/suit/storage/hazardvest/lime = list(CAT_SMR, "Lime reflective safety vest", 0, "synth-storage"), - /obj/item/clothing/suit/storage/hazardvest/blue = list(CAT_SMR, "Blue reflective safety vest", 0, "synth-storage"), - /obj/item/clothing/suit/storage/CMB = list(CAT_SMR, "CMB Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/RO = list(CAT_SMR, "TGMC RO Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/lawyer/bluejacket = list(CAT_SMR, "Blue Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/lawyer/purpjacket = list(CAT_SMR, "Purple Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/snow_suit = list(CAT_SMR, "Snowsuit", 0, "synth-storage"), + /obj/item/clothing/suit/armor/bulletproof = list(CAT_SMR, "Bulletproof vest", 0, "synth-armor"), + /obj/item/clothing/suit/surgical = list(CAT_SMR, "Surgical apron", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/labcoat = list(CAT_SMR, "Labcoat", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/labcoat/paramedic = list(CAT_SMR, "Paramedic's labcoat", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/hazardvest = list(CAT_SMR, "Orange reflective safety vest", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/hazardvest/lime = list(CAT_SMR, "Lime reflective safety vest", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/hazardvest/blue = list(CAT_SMR, "Blue reflective safety vest", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/CMB = list(CAT_SMR, "CMB Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/RO = list(CAT_SMR, "TGMC RO Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/lawyer/bluejacket = list(CAT_SMR, "Blue Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/lawyer/purpjacket = list(CAT_SMR, "Purple Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/snow_suit = list(CAT_SMR, "Snowsuit", 0, "synth-cosmetic"), /obj/item/clothing/suit/storage/chef = list(CAT_SMR, "Chef's apron", 0, "synth-storage"), /obj/item/clothing/suit/storage/wizrobe/gentlecoat = list(CAT_SMR, "Gentleman's Coat", 0, "synth-storage"), /obj/item/clothing/suit/storage/bomber = list(CAT_SMR, "Bomber Jacket", 0, "synth-storage"), @@ -628,7 +623,6 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/suit/wcoat = list(CAT_SMR, "Waistcoat", 0, "synth-cosmetic"), /obj/item/clothing/suit/ianshirt = list(CAT_SMR, "Ian Shirt", 0, "synth-cosmetic"), /obj/item/clothing/suit/suspenders = list(CAT_SMR, "Suspenders", 0, "synth-cosmetic"), - /obj/item/storage/backpack/industrial = list(CAT_BAK, "Industrial backpack", 0, "black"), /obj/item/storage/backpack/marine/corpsman = list(CAT_BAK, "TGMC corpsman backpack", 0, "black"), /obj/item/storage/backpack/marine/tech = list(CAT_BAK, "TGMC technician backpack", 0, "black"), /obj/item/storage/backpack/marine/engineerpack = list(CAT_BAK, "TGMC technician welderpack", 0, "black"), @@ -640,13 +634,9 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/armor_module/storage/uniform/black_vest = list(CAT_WEB, "Tactical Black Vest", 0, "black"), /obj/item/armor_module/storage/uniform/white_vest = list(CAT_WEB, "White medical vest", 0, "black"), /obj/item/armor_module/storage/uniform/surgery_webbing = list(CAT_WEB, "White surgical webbing", 0, "black"), - /obj/item/clothing/tie/red = list(CAT_WEB, "Red Tie", 0, "black"), - /obj/item/clothing/tie/blue = list(CAT_WEB, "Blue Tie", 0, "black"), - /obj/item/clothing/tie/horrible = list(CAT_WEB, "Horrible Tie", 0, "black"), /obj/item/clothing/gloves/insulated = list(CAT_GLO, "Insulated gloves", 0, "black"), + /obj/item/clothing/gloves/marine = list(CAT_GLO, "Combat gloves", 0, "synth-armor"), /obj/item/clothing/gloves/latex = list(CAT_GLO, "Latex gloves", 0, "black"), - /obj/item/clothing/gloves/marine/officer = list(CAT_GLO, "Officer gloves", 0, "black"), - /obj/item/clothing/gloves/white = list(CAT_GLO, "White gloves", 0, "black"), /obj/item/storage/belt/lifesaver/full = list(CAT_BEL, "Lifesaver belt", 0, "orange", "synth-attachable"), /obj/item/storage/belt/rig/medical = list(CAT_BEL, "Rig belt", 0, "black"), /obj/item/storage/belt/hypospraybelt/full = list(CAT_BEL, "Hypospray belt", 0, "black"), @@ -656,29 +646,20 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/shoes/leather = list(CAT_SHO, "Leather Shoes", 0, "synth-armor"), /obj/item/clothing/shoes/centcom = list(CAT_SHO, "Dress Shoes", 0, "synth-armor"), /obj/item/clothing/shoes/black = list(CAT_SHO, "Black Shoes", 0, "synth-armor"), - /obj/item/storage/pouch/general/large = list(CAT_POU, "General pouch", 0, "black"), /obj/item/storage/pouch/tools/full = list(CAT_POU, "Tool pouch", 0, "black"), /obj/item/storage/pouch/construction/full = list(CAT_POU, "Construction pouch", 0, "black"), - /obj/item/storage/pouch/electronics/full = list(CAT_POU, "Electronics pouch", 0, "black"), /obj/item/storage/pouch/medkit/medic = list(CAT_POU, "Medkit pouch", 0, "black"), /obj/item/storage/pouch/surgery = list(CAT_POU, "White surgical pouch", 0, "black"), - /obj/item/storage/holster/flarepouch/full = list(CAT_POU, "Flare pouch", 0, "black"), /obj/item/storage/pouch/field_pouch/full = list(CAT_POU, "Field pouch", 0, "black"), + /obj/item/clothing/head/modular/style/cap = list(CAT_SHN, "TGMC cap", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/boonie = list(CAT_SHN, "Boonie hat", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/classic_beret = list(CAT_SHN, "Marine beret", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/ushanka = list(CAT_SHN, "Ushanka", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/beanie = list(CAT_SHN, "Beanie", 0, "synth-rcmarmstorage"), /obj/item/clothing/head/hardhat = list(CAT_SHN, "Hard hat", 0, "black"), /obj/item/clothing/head/welding = list(CAT_SHN, "Welding helmet", 0, "black"), /obj/item/clothing/head/surgery/green = list(CAT_SHN, "Surgical cap", 0, "black"), - /obj/item/clothing/head/tgmccap = list(CAT_SHN, "TGMC cap", 0, "black"), - /obj/item/clothing/head/boonie = list(CAT_SHN, "Boonie hat", 0, "black"), - /obj/item/clothing/head/beret/marine = list(CAT_SHN, "Marine beret", 0, "black"), - /obj/item/clothing/head/tgmcberet/red = list(CAT_SHN, "MP beret", 0, "black"), - /obj/item/clothing/head/beret/eng = list(CAT_SHN, "Engineering beret", 0, "black"), - /obj/item/clothing/head/ushanka = list(CAT_SHN, "Ushanka", 0, "black"), /obj/item/clothing/head/collectable/tophat = list(CAT_SHN, "Top hat", 0, "black"), - /obj/item/clothing/head/beret = list(CAT_SHN, "Beret", 0, "black"), - /obj/item/clothing/head/beanie = list(CAT_SHN, "Beanie", 0, "black"), - /obj/item/clothing/head/beret/marine/logisticsofficer = list(CAT_SHN, "Logistics Officer Cap", 0, "black"), - /obj/item/clothing/head/beret/jan = list(CAT_SHN, "Purple Beret", 0, "black"), - /obj/item/clothing/head/tgmccap/ro = list(CAT_SHN, "RO's Cap", 0, "black"), /obj/item/clothing/head/bowlerhat = list(CAT_SHN, "Bowler hat", 0, "black"), /obj/item/clothing/head/hairflower = list(CAT_SHN, "Hairflower pin", 0, "black"), /obj/item/clothing/head/fez = list(CAT_SHN, "Fez", 0, "black"), @@ -742,9 +723,12 @@ GLOBAL_LIST_INIT(loadout_role_essential_set, list( )) ///Storage items that will always have their default content -GLOBAL_LIST_INIT(bypass_storage_content_save, typecacheof(list( +GLOBAL_LIST_INIT(loadout_instantiate_default_contents, typecacheof(list( /obj/item/storage/box/MRE, - /obj/item/storage/pill_bottle/packet, + /obj/item/storage/pill_bottle, + /obj/item/storage/box/m94, + /obj/item/storage/fancy/chemrettes, + /obj/item/storage/fancy/cigarettes, ))) //Defines use for the visualisation of loadouts @@ -757,6 +741,6 @@ GLOBAL_LIST_INIT(bypass_storage_content_save, typecacheof(list( #define MAXIMUM_LOADOUT 50 /// The current loadout version -#define CURRENT_LOADOUT_VERSION 14 +#define CURRENT_LOADOUT_VERSION 15 -GLOBAL_LIST_INIT(accepted_loadout_versions, list(5, 6, 7, 8, 9, 10, 11, 13, 14)) +GLOBAL_LIST_INIT(accepted_loadout_versions, list(5, 6, 7, 8, 9, 10, 11, 13, 14, 15)) diff --git a/code/__DEFINES/objects.dm b/code/__DEFINES/objects.dm index e66df92b36173..37233470138b7 100644 --- a/code/__DEFINES/objects.dm +++ b/code/__DEFINES/objects.dm @@ -269,3 +269,6 @@ GLOBAL_LIST_INIT(restricted_camera_networks, list( //Those networks can only be //cameras #define SOM_CAMERA_NETWORK "som_camera_network" + +///Burn level applied by lava if it calls fire_act +#define LAVA_BURN_LEVEL 60 diff --git a/code/__DEFINES/procpath.dm b/code/__DEFINES/procpath.dm index 642ca3eab6cc8..16716d6c091f2 100644 --- a/code/__DEFINES/procpath.dm +++ b/code/__DEFINES/procpath.dm @@ -15,12 +15,12 @@ // below, their accesses are optimized away. /// A text string of the verb's name. - var/name as text + var/name = null as text|null /// The verb's help text or description. - var/desc as text + var/desc = null as text|null /// The category or tab the verb will appear in. - var/category as text + var/category = null as text|null /// Only clients/mobs with `see_invisibility` higher can use the verb. - var/invisibility as num + var/invisibility = null as num|null /// Whether or not the verb appears in statpanel and commandbar when you press space - var/hidden as num + var/hidden = null as num|null diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index 80e3d57b1c98e..29efec972eb00 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -113,4 +113,5 @@ #define SHUTTLE_DISTRESS "distress" #define SHUTTLE_ESCAPE_POD "escape_pod" #define SHUTTLE_SUPPLY "supply" +#define SHUTTLE_VEHICLE_SUPPLY "vehicle_supply" diff --git a/code/__DEFINES/vehicles.dm b/code/__DEFINES/vehicles.dm index fafc791f7799c..642607dc7aed9 100644 --- a/code/__DEFINES/vehicles.dm +++ b/code/__DEFINES/vehicles.dm @@ -53,6 +53,8 @@ #define ARMORED_HAS_SECONDARY_WEAPON (1<<4) #define ARMORED_LIGHTS_ON (1<<5) #define ARMORED_HAS_HEADLIGHTS (1<<6) +#define ARMORED_PURCHASABLE_ASSAULT (1<<7) +#define ARMORED_PURCHASABLE_TRANSPORT (1<<8) #define MODULE_PRIMARY (1<<0) #define MODULE_SECONDARY (1<<1) diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index abf68f51bf49a..50e10431f5b3e 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -51,7 +51,6 @@ #define PUPPET_RECALL "recall puppet" #define PUPPET_SEEK_CLOSEST "seeking closest and attack order" //not xeno-usable #define PUPPET_ATTACK "seek and attack order" -#define PUPPET_SCOUT "scouting order" //List of weed types GLOBAL_LIST_INIT(weed_type_list, typecacheof(list( @@ -130,13 +129,6 @@ GLOBAL_LIST_INIT(resin_special_images_list, list( HARDY_WALL = image('icons/Xeno/actions.dmi', icon_state = HARDY_WALL) )) -//List of puppeteer order images -GLOBAL_LIST_INIT(puppeteer_order_images_list, list( - PUPPET_ATTACK = image('icons/Xeno/actions.dmi', icon_state = "enrage"), - PUPPET_SCOUT = image('icons/mob/actions.dmi', icon_state = "66"), - PUPPET_RECALL = image('icons/mob/actions.dmi', icon_state = "rally") - )) - //List of puppeteer pheromone images GLOBAL_LIST_INIT(puppeteer_phero_images_list, list( AURA_XENO_BLESSFURY = image('icons/mob/actions.dmi', icon_state = "Fury"), diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 18a6a5d991780..2d52cadb1c9b7 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -252,6 +252,7 @@ ColorTone(rgb, tone) if(4, 8) usealpha = TRUE if(3, 6) //proceed as normal + EMPTY_BLOCK_GUARD // why isnt this a normal if hhhh else return diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index efd00d16f4db1..4bc90717a90cf 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -17,4 +17,4 @@ #define is_away_level(z) SSmapping.level_trait(z, ZTRAIT_AWAY) -#define is_gameplay_level(z) SSmapping.level_trait(z, ZTRAIT_MARINE_MAIN_SHIP) || SSmapping.level_trait(z, ZTRAIT_GROUND) +#define is_gameplay_level(z) (SSmapping.level_trait(z, ZTRAIT_MARINE_MAIN_SHIP) || SSmapping.level_trait(z, ZTRAIT_GROUND)) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 9258a9b91e198..a55294707a810 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -70,7 +70,7 @@ #warn compiling in TESTING mode. testing() debug messages will be visible. #endif -#ifdef CIBUILDING +#if defined(CIBUILDING) && !defined(OPENDREAM) #define UNIT_TESTS #endif @@ -95,8 +95,15 @@ #define CBT #endif -#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. +#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 961a3cf7f1d46..dec474f02a7ae 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -480,6 +480,7 @@ GLOBAL_LIST_INIT(bitfields, list( "FULLY_WIELDED" = FULLY_WIELDED, "HAS_UNDERLAY" = HAS_UNDERLAY, "AUTOBALANCE_CHECK" = AUTOBALANCE_CHECK, + "IN_STORAGE" = IN_STORAGE, ), "storage_flags" = list( "BYPASS_VENDOR_CHECK" = BYPASS_VENDOR_CHECK, diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index aef97a44e60ca..4292a5b848313 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -155,7 +155,7 @@ return TRUE if(isitem(loc)) //Special case handling. - if(istype(loc, /obj/item/storage/internal)) //Special holders, could be contained really deep, like webbings, so let's go one step further. + if(istype(loc, /obj/item/storage/internal) || istype(loc, /obj/item/armor_module)) //Special holders, could be contained really deep, like webbings, so let's go one step further. return loc.Adjacent(neighbor) else //Backpacks and other containers. if(!isturf(loc.loc)) //Item is inside an item neither held by neighbor nor in a turf. Can't access. diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 080e73de0491e..a596bc18f3af5 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -161,10 +161,11 @@ RangedAttack(A, params) - +/** + * A backwards depth-limited breadth-first-search to see if the target is + * logically "in" anything adjacent to us. + */ /atom/movable/proc/CanReach(atom/ultimate_target, obj/item/tool, view_only = FALSE) - // A backwards depth-limited breadth-first-search to see if the target is - // logically "in" anything adjacent to us. var/list/direct_access = DirectAccess() var/depth = 1 + (view_only ? STORAGE_VIEW_DEPTH : INVENTORY_DEPTH) diff --git a/code/_onclick/hud/screen_objects/screen_objects.dm b/code/_onclick/hud/screen_objects/screen_objects.dm index 9749d77840203..bb2c8832fd692 100644 --- a/code/_onclick/hud/screen_objects/screen_objects.dm +++ b/code/_onclick/hud/screen_objects/screen_objects.dm @@ -137,9 +137,8 @@ /atom/movable/screen/close/Click() - if(istype(master, /obj/item/storage)) - var/obj/item/storage/S = master - S.close(usr) + var/datum/storage/storage = master + storage.hide_from(usr) return TRUE @@ -257,6 +256,34 @@ icon_state = "block" screen_loc = "7,7 to 10,8" +/atom/movable/screen/storage/Click(location, control, params) + if(usr.incapacitated(TRUE)) + return + + var/list/modifiers = params2list(params) + + if(!master) + return + + var/datum/storage/current_storage_datum = master + var/obj/item/item_in_hand = usr.get_active_held_item() + if(item_in_hand) + current_storage_datum.parent.attackby(item_in_hand, usr) + return + + // Taking something out of the storage screen (including clicking on item border overlay) + var/list/screen_loc_params = splittext(modifiers["screen-loc"], ",") + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + var/click_x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 144 + + for(var/i = 1 to length(current_storage_datum.click_border_start)) + if(current_storage_datum.click_border_start[i] > click_x || click_x > current_storage_datum.click_border_end[i]) + continue + if(length(current_storage_datum.parent.contents) < i) + continue + item_in_hand = current_storage_datum.parent.contents[i] + item_in_hand.attack_hand(usr) + return /atom/movable/screen/storage/proc/update_fullness(obj/item/storage/S) if(!length(S.contents)) @@ -266,7 +293,9 @@ var/total_w = 0 for(var/obj/item/I in S) total_w += I.w_class - var/fullness = round(10 * max(length(S.contents) / S.storage_slots, total_w / S.max_storage_space)) + var/storage_slot_fullness = S.storage_datum.storage_slots ? (length(S.contents) / S.storage_datum.storage_slots) : 0 + var/slotless_fullness = S.storage_datum.max_storage_space ? (total_w / S.storage_datum.max_storage_space) : 0 + var/fullness = round(10 * max(storage_slot_fullness, slotless_fullness)) switch(fullness) if(10) color = "#ff0000" @@ -275,7 +304,6 @@ else color = null - /atom/movable/screen/throw_catch name = "throw/catch" icon = 'icons/mob/screen/midnight.dmi' @@ -301,9 +329,9 @@ if(isobserver(usr)) return - var/list/PL = params2list(params) - var/icon_x = text2num(PL["icon-x"]) - var/icon_y = text2num(PL["icon-y"]) + var/list/modifiers = params2list(params) + var/icon_x = text2num(modifiers["icon-x"]) + var/icon_y = text2num(modifiers["icon-y"]) var/choice = get_zone_at(icon_x, icon_y) if (!choice) return TRUE @@ -317,9 +345,9 @@ if(isobserver(usr)) return - var/list/PL = params2list(params) - var/icon_x = text2num(PL["icon-x"]) - var/icon_y = text2num(PL["icon-y"]) + var/list/modifiers = params2list(params) + var/icon_x = text2num(modifiers["icon-x"]) + var/icon_y = text2num(modifiers["icon-y"]) var/choice = get_zone_at(icon_x, icon_y) if(hovering == choice) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 9e3030d152f8b..c48950d4c7b3e 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -215,10 +215,16 @@ SUBSYSTEM_DEF(mapping) var/datum/map_config/ground_map = configs[GROUND_MAP] INIT_ANNOUNCE("Loading [ground_map.map_name]...") LoadGroup(FailedZs, ground_map.map_name, ground_map.map_path, ground_map.map_file, ground_map.traits, ZTRAITS_GROUND) + // Also saving this as a feedback var as we don't have ship_name in the round table. + SSblackbox.record_feedback("text", "ground_map", 1, ground_map.map_name) + #if !(defined(CIBUILDING) && !defined(ALL_MAPS)) var/datum/map_config/ship_map = configs[SHIP_MAP] INIT_ANNOUNCE("Loading [ship_map.map_name]...") LoadGroup(FailedZs, ship_map.map_name, ship_map.map_path, ship_map.map_file, ship_map.traits, ZTRAITS_MAIN_SHIP) + // Also saving this as a feedback var as we don't have ship_name in the round table. + SSblackbox.record_feedback("text", "ship_map", 1, ship_map.map_name) + #endif if(SSdbcore.Connect()) var/datum/db_query/query_round_map_name = SSdbcore.NewQuery({" @@ -227,10 +233,6 @@ SUBSYSTEM_DEF(mapping) query_round_map_name.Execute() qdel(query_round_map_name) - // Also saving this as a feedback var as we don't have ship_name in the round table. - SSblackbox.record_feedback("text", "ground_map", 1, ground_map.map_name) - SSblackbox.record_feedback("text", "ship_map", 1, ship_map.map_name) - if(LAZYLEN(FailedZs)) //but seriously, unless the server's filesystem is messed up this will never happen var/msg = "RED ALERT! The following map files failed to load: [FailedZs[1]]" if(length(FailedZs) > 1) diff --git a/code/controllers/subsystem/silo.dm b/code/controllers/subsystem/silo.dm index 672f8cb5a8853..794bceb0f0742 100644 --- a/code/controllers/subsystem/silo.dm +++ b/code/controllers/subsystem/silo.dm @@ -16,7 +16,11 @@ SUBSYSTEM_DEF(silo) /datum/controller/subsystem/silo/fire(resumed = 0) var/datum/job/xeno_job = SSjob.GetJobType(/datum/job/xenomorph) var/active_humans = length(GLOB.humans_by_zlevel[SSmonitor.gamestate == SHIPSIDE ? "3" : "2"]) - var/active_xenos = length(GLOB.alive_xeno_list_hive[XENO_HIVE_NORMAL]) + (xeno_job.total_positions - xeno_job.current_positions) + var/active_xenos = xeno_job.total_positions - xeno_job.current_positions //burrowed + for(var/mob/living/carbon/xenomorph/xeno AS in GLOB.alive_xeno_list_hive[XENO_HIVE_NORMAL]) + if(xeno.xeno_caste.caste_flags & CASTE_IS_A_MINION) + continue + active_xenos ++ //The larval spawn is based on the amount of silo, ponderated with a define. Larval follow a f(x) = (x + a)/(1 + a) * something law, which is smoother that f(x) = x * something current_larva_spawn_rate = length(GLOB.xeno_resin_silos_by_hive[XENO_HIVE_NORMAL]) ? SILO_OUTPUT_PONDERATION + length(GLOB.xeno_resin_silos_by_hive[XENO_HIVE_NORMAL]) : 0 //We then are normalising with the number of alive marines, so the balance is roughly the same whether or not we are in high pop diff --git a/code/datums/actions/order_action.dm b/code/datums/actions/order_action.dm index c212a546a0b8c..cbb32a6059f2c 100644 --- a/code/datums/actions/order_action.dm +++ b/code/datums/actions/order_action.dm @@ -39,6 +39,8 @@ . = ..() if(!.) return + if(!should_show()) + return FALSE if(owner.stat != CONSCIOUS || TIMER_COOLDOWN_CHECK(owner, COOLDOWN_CIC_ORDERS)) return FALSE diff --git a/code/datums/components/harvester.dm b/code/datums/components/harvester.dm index 21a00167879c7..0dbf7e052378f 100644 --- a/code/datums/components/harvester.dm +++ b/code/datums/components/harvester.dm @@ -224,7 +224,7 @@ if(/datum/reagent/medicine/kelotane) target.apply_damage(weapon.force*0.6, BRUTE, user.zone_selected) - target.flamer_fire_act(10) + target.fire_act(10) if(/datum/reagent/medicine/tramadol) target.apply_damage(weapon.force*0.6, BRUTE, user.zone_selected) diff --git a/code/datums/components/tac_reload_storage.dm b/code/datums/components/tac_reload_storage.dm index 367450432141e..f7119c2268788 100644 --- a/code/datums/components/tac_reload_storage.dm +++ b/code/datums/components/tac_reload_storage.dm @@ -1,11 +1,20 @@ -///Component for making something capable of tactical reload via right click. +/*! + * Component for making something capable of tactical reload via right click. + */ + +// HEY, LISTEN. This component pre-dates the storage refactor so it may not be up to standards. +// I would love it if someone were to go ahead and give this a look for me, otherwise I'll get to it eventually... maybe + /datum/component/tac_reload_storage ///The storage item that we are attempting to use to tactical reload on. ///Use this over checking the item directly, for edge cases such as indirect storage (e.g: storage armor module). var/obj/item/storage/reloading_storage /datum/component/tac_reload_storage/Initialize() - if(!isstorage(parent) && !istype(parent, /obj/item/armor_module/storage)) + if(!isatom(parent)) // storage_datum is a var on /atom, so that's the bare minimum + return COMPONENT_INCOMPATIBLE + var/atom/atom_parent = parent + if(!atom_parent.storage_datum) //Gotta have some storage to be capable to tac-reload from return COMPONENT_INCOMPATIBLE /datum/component/tac_reload_storage/Destroy(force, silent) @@ -46,7 +55,7 @@ SIGNAL_HANDLER if(!istype(reloading_gun)) return - if(!reloading_storage) + if(!reloading_storage.storage_datum) CRASH("[user] attempted to reload [reloading_gun] on [source], but it has no storage attached!") INVOKE_ASYNC(src, PROC_REF(do_tac_reload), reloading_gun, user, params) @@ -57,7 +66,7 @@ continue if(user.get_active_held_item(reloading_gun)) reloading_gun.tactical_reload(item_to_reload_with, user) - reloading_storage.orient2hud() + reloading_storage.storage_datum.orient2hud() return COMPONENT_NO_AFTERATTACK /** @@ -70,7 +79,7 @@ */ /datum/component/tac_reload_storage/proc/on_suit_attach(obj/item/armor_module/storage/source, obj/item/clothing/new_host, mob/attacher) SIGNAL_HANDLER - reloading_storage = source.storage + reloading_storage = source.storage_datum RegisterSignal(new_host, COMSIG_ATOM_ATTACKBY_ALTERNATE, PROC_REF(on_parent_attackby_alternate)) RegisterSignal(new_host, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) diff --git a/code/datums/gamemodes/_game_mode.dm b/code/datums/gamemodes/_game_mode.dm index 66ac37d4d4ced..3c9ac0ad51a70 100644 --- a/code/datums/gamemodes/_game_mode.dm +++ b/code/datums/gamemodes/_game_mode.dm @@ -102,6 +102,12 @@ GLOBAL_VAR(common_report) //Contains common part of roundend report GLOB.landmarks_round_start.len-- L.after_round_start() + for(var/datum/job/job AS in valid_job_types) + job = SSjob.GetJobType(job) + if(!job) //dunno how or why but it errored in ci and i couldnt reproduce on local + continue + job.on_pre_setup() + return TRUE /datum/game_mode/proc/setup() diff --git a/code/datums/gamemodes/campaign.dm b/code/datums/gamemodes/campaign.dm index 07920127e09cc..a48b574e702d9 100644 --- a/code/datums/gamemodes/campaign.dm +++ b/code/datums/gamemodes/campaign.dm @@ -124,6 +124,11 @@ continue stat_list[i].get_status_tab_items(source, items) +/datum/game_mode/hvh/campaign/deploy_point_activated(datum/source, mob/living/user) + if(!stat_list[user.faction]) + return + current_mission.get_mission_deploy_message(user) + /datum/game_mode/hvh/campaign/ghost_verbs(mob/dead/observer/observer) return list(/datum/action/campaign_overview, /datum/action/campaign_loadout) @@ -274,7 +279,7 @@ if(!SSticker) return var/mob/candidate = locate(href_list["player"]) - if(!candidate.client) + if(!candidate?.client) return if(!GLOB.enter_allowed) @@ -289,7 +294,7 @@ if(!attrition_respawn(ready_candidate, job_datum)) ready_candidate.mind.transfer_to(candidate) - ready_candidate.client.screen.Cut() + ready_candidate?.client?.screen?.Cut() qdel(ready_candidate) return if(isobserver(candidate)) diff --git a/code/datums/gamemodes/campaign/campaign_mission.dm b/code/datums/gamemodes/campaign/campaign_mission.dm index 15a50058ddd73..286dbfa3371aa 100644 --- a/code/datums/gamemodes/campaign/campaign_mission.dm +++ b/code/datums/gamemodes/campaign/campaign_mission.dm @@ -198,6 +198,20 @@ /datum/campaign_mission/proc/load_objective_description() return +///Get a mission specific message for the deploying user if there is one +/datum/campaign_mission/proc/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(!message) //overridden by specific missions + switch(user.faction) + if(FACTION_TERRAGOV) + message = "Stick together and achieve those objectives marines. Good luck." + if(FACTION_SOM) + message = "Remember your training marines, show those Terrans the strength of the SOM, glory to Mars!" + else + return + + user.playsound_local(user, "sound/effects/CIC_order.ogg", 10, 1) + user.play_screen_text("[text_source]
" + message, portrait_to_use) + ///Generates status tab info for the mission /datum/campaign_mission/proc/get_status_tab_items(mob/source, list/items) items += "Mission: [name]" @@ -330,7 +344,7 @@ for(var/mob/living/carbon/human/corpse AS in GLOB.dead_human_list) //clean up all the bodies and refund normal roles if required if(corpse.z != mission_z_level.z_value) continue - if(!HAS_TRAIT(corpse, TRAIT_UNDEFIBBABLE) && corpse.job.job_cost) + if(!HAS_TRAIT(corpse, TRAIT_UNDEFIBBABLE) && corpse?.job?.job_cost) corpse.job.free_job_positions(1) qdel(corpse) diff --git a/code/datums/gamemodes/campaign/faction_stats.dm b/code/datums/gamemodes/campaign/faction_stats.dm index 49f01727408d8..6aefdfb49c194 100644 --- a/code/datums/gamemodes/campaign/faction_stats.dm +++ b/code/datums/gamemodes/campaign/faction_stats.dm @@ -6,7 +6,6 @@ GLOBAL_LIST_INIT(campaign_default_assets, list( /datum/campaign_asset/bonus_job/pmc, /datum/campaign_asset/bonus_job/combat_robots, /datum/campaign_asset/fire_support/mortar, - /datum/campaign_asset/droppod_refresh, /datum/campaign_asset/droppod_enabled, ), FACTION_SOM = list( @@ -14,7 +13,6 @@ GLOBAL_LIST_INIT(campaign_default_assets, list( /datum/campaign_asset/bonus_job/colonial_militia, /datum/campaign_asset/bonus_job/icc, /datum/campaign_asset/fire_support/som_mortar, - /datum/campaign_asset/teleporter_charges, /datum/campaign_asset/teleporter_enabled, ), )) @@ -74,6 +72,7 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( /datum/campaign_mission/tdm/mech_wars/som = 12, /datum/campaign_mission/destroy_mission/supply_raid/som = 15, /datum/campaign_mission/capture_mission/asat = 12, + /datum/campaign_mission/raiding_base/som = 6, ), )) @@ -206,7 +205,9 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( for(var/mob/living/carbon/human/human AS in possible_candidates) human.playsound_local(null, 'sound/effects/CIC_order.ogg', 30, 1) human.play_screen_text("OVERWATCH
" + "[faction_leader] has been promoted to the role of faction commander", faction_portrait) - to_chat(faction_leader, span_highdanger("You have been promoted to the role of commander for your faction. It is your responsibility to determine your side's course of action, and how to best utilise the resources at your disposal.")) + to_chat(faction_leader, span_highdanger("You have been promoted to the role of commander for your faction. It is your responsibility to determine your side's course of action, and how to best utilise the resources at your disposal. \ + Attrition must be set BEFORE a mission starts ensure you team has access to respawns. Check this in the Faction UI screen. \ + You are the only one that can choose the next mission for your faction. If your faction wins a mission, select the next one in the Faction UI screen, in the Missions tab.")) ///Adds a new asset to the faction for use /datum/faction_stats/proc/add_asset(datum/campaign_asset/new_asset) @@ -400,7 +401,7 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( for(var/datum/campaign_asset/asset AS in purchasable_assets) var/list/asset_data = list() asset_data["name"] = initial(asset.name) - asset_data["type"] = initial(asset) + asset_data["type"] = asset asset_data["desc"] = initial(asset.desc) asset_data["detailed_desc"] = initial(asset.detailed_desc) asset_data["uses_remaining"] = initial(asset.uses) diff --git a/code/datums/gamemodes/campaign/individual_stats.dm b/code/datums/gamemodes/campaign/individual_stats.dm index 57ae70628ea08..5d977f7c24960 100644 --- a/code/datums/gamemodes/campaign/individual_stats.dm +++ b/code/datums/gamemodes/campaign/individual_stats.dm @@ -412,10 +412,11 @@ return stats.current_mob = owner //taking over ssd's creates a mismatch //we have to update selected tab/job so we load the correct data for the UI - if(!isliving(owner)) + var/mob/living/living_owner = owner + + if(!isliving(owner) || !(living_owner?.job?.title in stats.valid_jobs)) stats.selected_job = stats.valid_jobs[1] else - var/mob/living/living_owner = owner stats.selected_job = living_owner.job.title stats.selected_tab = TAB_LOADOUT stats.interact(owner) diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/back_slot.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/back_slot.dm index ba3dde9517317..39d8db6e4dae2 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/back_slot.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/back_slot.dm @@ -27,9 +27,9 @@ /datum/loadout_item/back/som_flamer_tank/x_fuel name = "X-fuel tank" - desc = "A specialized fuel tank of ultra thick napthal type X, known for its extreme heat and slow burn rate, as well as it's distinct blue flames. For use with the V-62 incinerator." + desc = "A specialized fuel tank of ultra thick napthal type X, known for its extreme heat and slow burn rate, as well as its distinct blue flames. For use with the V-62 incinerator." item_typepath = /obj/item/ammo_magazine/flamer_tank/backtank/X - purchase_cost = 40 + purchase_cost = 50 unlock_cost = 200 loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_UNLOCKABLE @@ -105,6 +105,6 @@ You'll kill pretty much anything you can hit with this - providing you can get close enough to use it." ui_icon = "axe" item_typepath = /obj/item/weapon/twohanded/fireaxe/som - jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_FIELD_COMMANDER) + jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER, SOM_FIELD_COMMANDER) item_blacklist = list(/obj/item/weapon/twohanded/fireaxe/som = ITEM_SLOT_SUITSTORE) loadout_item_flags = NONE diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/head.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/head.dm index 3b69a4d64855a..9507f66fe55ea 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/head.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/head.dm @@ -50,6 +50,9 @@ jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN) item_whitelist = list(/obj/item/clothing/suit/modular/som/heavy/lorica = ITEM_SLOT_OCLOTHING) +/datum/loadout_item/helmet/som_tyr/universal + jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_CORPSMAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER, SOM_FIELD_COMMANDER) + loadout_item_flags = NONE /datum/loadout_item/helmet/som_mimir name = "Biohazard helmet" desc = "A standard combat helmet with a Mithridatius 'Mith' environmental protection module." diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/pockets.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/pockets.dm index e19db1484355a..889e3c8a9d93b 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/pockets.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/pockets.dm @@ -65,7 +65,7 @@ desc = "A pouch containing an assortment of construction supplies. Allows for the rapid establishment of fortified positions." ui_icon = "materials" item_typepath = /obj/item/storage/pouch/construction/som - jobs_supported = list(SOM_SQUAD_MARINE) + jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER) /datum/loadout_item/r_pocket/som_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, SLOT_IN_R_POUCH) @@ -171,7 +171,7 @@ desc = "A pouch containing an assortment of construction supplies. Allows for the rapid establishment of fortified positions." ui_icon = "materials" item_typepath = /obj/item/storage/pouch/construction/som - jobs_supported = list(SOM_SQUAD_MARINE) + jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER) /datum/loadout_item/l_pocket/som_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, SLOT_IN_L_POUCH) @@ -179,6 +179,16 @@ wearer.equip_to_slot_or_del(new /obj/item/stack/sandbags/large_stack, SLOT_IN_L_POUCH) wearer.equip_to_slot_or_del(new /obj/item/stack/barbed_wire/full, SLOT_IN_L_POUCH) +/datum/loadout_item/l_pocket/som_construction/engineer + desc = "A pouch containing additional metal, plasteel and barbed wire. Allows for the rapid establishment of fortified positions." + jobs_supported = list(SOM_SQUAD_ENGINEER) + +/datum/loadout_item/l_pocket/som_construction/engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) + wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/large_stack, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/stack/barbed_wire/full, SLOT_IN_L_POUCH) + /datum/loadout_item/l_pocket/som_magazine name = "Mag pouch-S" desc = "A pouch containing three ammo magazines. Will contain a secondary ammo type where applicable." diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/suit.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/suit.dm index 2a7519abb9b1a..a8910c4c680b8 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/suit.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/suit.dm @@ -125,6 +125,11 @@ jobs_supported = list(SOM_SQUAD_VETERAN) item_whitelist = list(/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/charger/somvet = ITEM_SLOT_SUITSTORE) +/datum/loadout_item/suit_slot/som_heavy_tyr/universal + jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_CORPSMAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER, SOM_FIELD_COMMANDER) + loadout_item_flags = null + item_whitelist = null + /datum/loadout_item/suit_slot/gorgon name = "Gorgon armor" desc = "M-35 'Gorgon' armor with integrated Apollo automedical module. Provides outstanding protection without severely limiting mobility. \ diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/field_commander.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/field_commander.dm index d5189ff12ac83..5a33a1b8eca08 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/field_commander.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/field_commander.dm @@ -34,7 +34,7 @@ /datum/loadout_item/suit_store/main_gun/som_field_commander/standard_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -58,7 +58,7 @@ /datum/loadout_item/suit_store/main_gun/som_field_commander/smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -83,7 +83,7 @@ /datum/loadout_item/suit_store/main_gun/som_field_commander/volkite_charger/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -107,7 +107,7 @@ /datum/loadout_item/suit_store/main_gun/som_field_commander/volkite_caliver/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -129,7 +129,7 @@ /datum/loadout_item/suit_store/main_gun/som_field_commander/mpi/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -152,7 +152,7 @@ /datum/loadout_item/suit_store/main_gun/som_field_commander/carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -180,7 +180,7 @@ wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign/som, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return if(istype(wearer.belt, /obj/item/storage/holster/belt/pistol/m4a3/som)) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang/stun, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/squad_leader.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/squad_leader.dm index 97e19c10f09b5..45ab1b8297f56 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/squad_leader.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/squad_leader.dm @@ -34,7 +34,7 @@ /datum/loadout_item/suit_store/main_gun/som_squad_leader/standard_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -58,7 +58,7 @@ /datum/loadout_item/suit_store/main_gun/som_squad_leader/smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -67,7 +67,7 @@ wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_BACKPACK) - wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary/som, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/cloak/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang/stun, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang/stun, SLOT_IN_BACKPACK) @@ -83,14 +83,14 @@ /datum/loadout_item/suit_store/main_gun/som_squad_leader/volkite_charger/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) - wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/som, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/cloak/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang/stun, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, SLOT_IN_BACKPACK) @@ -107,7 +107,7 @@ /datum/loadout_item/suit_store/main_gun/som_squad_leader/volkite_caliver/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -129,7 +129,7 @@ /datum/loadout_item/suit_store/main_gun/som_squad_leader/mpi/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -152,7 +152,7 @@ /datum/loadout_item/suit_store/main_gun/som_squad_leader/carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/standard.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/standard.dm index da1de837f2261..19fb64ce323d2 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/standard.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/standard.dm @@ -5,7 +5,7 @@ . = ..() if(!ammo_type) return - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return if(istype(wearer.belt, /obj/item/storage/holster/belt/pistol/m4a3/som)) //if we have a backpack and pistol belt, we just load more ammo in the back wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -35,7 +35,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/standard_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) @@ -78,7 +78,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/mpi_grenadier/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -100,7 +100,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -128,7 +128,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -177,7 +177,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/standard_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang/stun, SLOT_IN_BACKPACK) @@ -207,7 +207,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/flamer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -236,7 +236,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/smg_and_shield/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/marine/som, SLOT_L_HAND) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/tool/weldingtool/largetank, SLOT_IN_BACKPACK) @@ -280,7 +280,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/machinegunner/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -311,7 +311,7 @@ /datum/loadout_item/suit_store/main_gun/som_marine/volkite_charger/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -348,7 +348,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/som, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary/som, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som, SLOT_IN_BACKPACK) @@ -380,23 +380,23 @@ /datum/loadout_item/suit_store/main_gun/som_marine/suppressed_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) if(!istype(wearer.back, /obj/item/storage/backpack/satchel)) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/som, SLOT_IN_BACKPACK) - wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/som, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/cloak/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/micro_grenade/cluster, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BACKPACK) /datum/loadout_item/suit_store/main_gun/som_marine/suppressed_rifle/role_post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) - wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/som, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/micro_grenade, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/micro_grenade/dragonbreath, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/micro_grenade/cluster, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/micro_grenade/smoke_burst, SLOT_IN_ACCESSORY) + wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/cloak/som, SLOT_IN_ACCESSORY) /datum/loadout_item/suit_store/main_gun/som_marine/suppressed_rifle/enhanced name = "V-31-suppressed+" diff --git a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/veteran.dm b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/veteran.dm index 83332e2d9fd1b..561f23ea4a7ea 100644 --- a/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/veteran.dm +++ b/code/datums/gamemodes/campaign/loadout_items/SOM/suit_storage/veteran.dm @@ -34,7 +34,7 @@ /datum/loadout_item/suit_store/main_gun/som_veteran/standard_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -66,7 +66,7 @@ /datum/loadout_item/suit_store/main_gun/som_veteran/smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -135,7 +135,7 @@ /datum/loadout_item/suit_store/main_gun/som_veteran/volkite_charger/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -166,7 +166,7 @@ /datum/loadout_item/suit_store/main_gun/som_veteran/volkite_caliver/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) @@ -196,7 +196,7 @@ /datum/loadout_item/suit_store/main_gun/som_veteran/mpi/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mpi_km/extended, SLOT_IN_BACKPACK) @@ -219,7 +219,7 @@ /datum/loadout_item/suit_store/main_gun/som_veteran/carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -294,6 +294,7 @@ ui_icon = "smg" item_typepath = /obj/item/weapon/gun/smg/som/support item_whitelist = list(/obj/item/clothing/suit/modular/som/heavy/mithridatius = ITEM_SLOT_OCLOTHING) + secondary_ammo_type = /obj/item/ammo_magazine/smg/som/rad /datum/loadout_item/suit_store/main_gun/som_veteran/radioactive_smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x20mm, SLOT_IN_ACCESSORY) @@ -303,37 +304,37 @@ wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_ACCESSORY) if(istype(wearer.belt, /obj/item/storage/belt)) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_BELT) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_BELT) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_BELT) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_BELT) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som, SLOT_IN_BELT) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som, SLOT_IN_BELT) + wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BELT) + wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BELT) + wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BELT) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BELT) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BELT) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BELT) if(istype(wearer.l_store, /obj/item/storage/pouch/magazine)) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_L_POUCH) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_L_POUCH) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_L_POUCH) if(istype(wearer.r_store, /obj/item/storage/pouch/magazine)) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_R_POUCH) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_R_POUCH) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_R_POUCH) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_R_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_R_POUCH) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return - wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/rad, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/rad, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/rad, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_BACKPACK) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_BACKPACK) - wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/rad, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/som/incendiary, SLOT_IN_BACKPACK) if(!istype(wearer.back, /obj/item/storage/backpack/satchel)) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/rad, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/rad, SLOT_IN_BACKPACK) - wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/rad, SLOT_IN_BACKPACK) + wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) /datum/loadout_item/suit_store/energy_sword @@ -351,7 +352,7 @@ wearer.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE/som, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/back_slot.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/back_slot.dm index cdf0e77cafa80..18254dff9f692 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/back_slot.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/back_slot.dm @@ -60,9 +60,9 @@ /datum/loadout_item/back/flamer_tank/x_fuel name = "X-fuel tank" - desc = "A specialized fuel tank of ultra thick napthal type X, known for its extreme heat and slow burn rate, as well as it's distinct blue flames. For use with the FL-84 flamethrower and FL-240 incinerator unit." + desc = "A specialized fuel tank of ultra thick napthal type X, known for its extreme heat and slow burn rate, as well as its distinct blue flames. For use with the FL-84 flamethrower and FL-240 incinerator unit." item_typepath = /obj/item/ammo_magazine/flamer_tank/backtank/X - purchase_cost = 40 + purchase_cost = 50 unlock_cost = 200 loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_UNLOCKABLE diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/head.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/head.dm index 1d8e31e44012e..cd3a733677b92 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/head.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/head.dm @@ -62,11 +62,14 @@ jobs_supported = list(SQUAD_MARINE) item_whitelist = list(/obj/item/clothing/suit/modular/xenonauten/heavy/tyr_two = ITEM_SLOT_OCLOTHING) - /datum/loadout_item/helmet/tyr/smartgunner jobs_supported = list(SQUAD_SMARTGUNNER) loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE +/datum/loadout_item/helmet/tyr/universal + jobs_supported = list(SQUAD_MARINE, SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_SMARTGUNNER, SQUAD_LEADER, FIELD_COMMANDER) + loadout_item_flags = NONE + /datum/loadout_item/helmet/white_dress name = "Dress Cap" desc = "The dress white cap for your dress uniform. Pride is your shield, because this isn't." diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/pockets.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/pockets.dm index 6937dbcc02c19..86950b9b646b1 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/pockets.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/pockets.dm @@ -77,7 +77,7 @@ desc = "A pouch containing an assortment of construction supplies. Allows for the rapid establishment of fortified positions." ui_icon = "materials" item_typepath = /obj/item/storage/pouch/construction - jobs_supported = list(SQUAD_MARINE) + jobs_supported = list(SQUAD_MARINE, SQUAD_SMARTGUNNER, SQUAD_LEADER) /datum/loadout_item/r_pocket/marine_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, SLOT_IN_R_POUCH) @@ -191,7 +191,7 @@ desc = "A pouch containing an assortment of construction supplies. Allows for the rapid establishment of fortified positions." ui_icon = "materials" item_typepath = /obj/item/storage/pouch/construction - jobs_supported = list(SQUAD_MARINE) + jobs_supported = list(SQUAD_MARINE, SQUAD_SMARTGUNNER, SQUAD_LEADER) /datum/loadout_item/l_pocket/marine_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, SLOT_IN_L_POUCH) @@ -199,6 +199,16 @@ wearer.equip_to_slot_or_del(new /obj/item/stack/sandbags/large_stack, SLOT_IN_L_POUCH) wearer.equip_to_slot_or_del(new /obj/item/stack/barbed_wire/full, SLOT_IN_L_POUCH) +/datum/loadout_item/l_pocket/marine_construction/engineer + desc = "A pouch containing additional metal, plasteel and barbed wire. Allows for the rapid establishment of fortified positions." + jobs_supported = list(SQUAD_ENGINEER) + +/datum/loadout_item/l_pocket/marine_construction/engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) + wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/large_stack, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, SLOT_IN_L_POUCH) + wearer.equip_to_slot_or_del(new /obj/item/stack/barbed_wire/full, SLOT_IN_L_POUCH) + /datum/loadout_item/l_pocket/magazine name = "Mag pouch-S" desc = "A pouch containing three ammo magazines. Will contain a secondary ammo type where applicable." diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit.dm index e384506ead8e7..eb0e85f9e7ae7 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit.dm @@ -137,6 +137,11 @@ loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE item_whitelist = null +/datum/loadout_item/suit_slot/heavy_tyr/universal + jobs_supported = list(SQUAD_MARINE, SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_SMARTGUNNER, SQUAD_LEADER, FIELD_COMMANDER) + loadout_item_flags = NONE + item_whitelist = null + /datum/loadout_item/suit_slot/medium_valk name = "M Valkyrie armor" desc = "Medium armor with a Valkyrie automedical module. Provides respectable protection, powerful automatic medical assistance, but modest mobility." diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/corpsman.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/corpsman.dm index 61cbb778d5aa0..cc39b19ed419b 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/corpsman.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/corpsman.dm @@ -21,7 +21,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/laser_carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -47,7 +47,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/laser_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -73,7 +73,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/auto_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -99,7 +99,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/skirmish_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -124,7 +124,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/standard_smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -158,7 +158,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -191,7 +191,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/assault_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -225,7 +225,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/combat_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -253,7 +253,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/plasma_smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) @@ -281,7 +281,7 @@ /datum/loadout_item/suit_store/main_gun/corpsman/plasma_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/quickclotplus, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/peridaxon_plus, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/field_commander.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/field_commander.dm index 472fe01842a03..50f61e3e377e2 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/field_commander.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/field_commander.dm @@ -14,7 +14,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/m15, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -47,7 +47,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/m15, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -92,7 +92,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/sticky, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -121,7 +121,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/m15, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -150,7 +150,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/m15, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -179,7 +179,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -208,7 +208,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -247,7 +247,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/plasma_pistol, SLOT_IN_BACKPACK) @@ -288,7 +288,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/m15, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -319,7 +319,7 @@ wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank/mini, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/marine.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/marine.dm index 0875eb5b715ca..17e954446b3e6 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/marine.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/marine.dm @@ -19,7 +19,7 @@ /datum/loadout_item/suit_store/main_gun/marine/standard_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/marine/deployable, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x24mm, SLOT_IN_BACKPACK) @@ -55,7 +55,7 @@ /datum/loadout_item/suit_store/main_gun/marine/laser_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/cell/lasgun/lasrifle, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/cell/lasgun/lasrifle, SLOT_IN_BACKPACK) @@ -84,7 +84,7 @@ /datum/loadout_item/suit_store/main_gun/marine/standard_carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x24mm, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/standard_heavypistol, SLOT_IN_BACKPACK) @@ -119,7 +119,7 @@ /datum/loadout_item/suit_store/main_gun/marine/combat_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p492x34mm, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p492x34mm, SLOT_IN_BACKPACK) @@ -149,7 +149,7 @@ /datum/loadout_item/suit_store/main_gun/marine/battle_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/marine/deployable, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x265mm, SLOT_IN_BACKPACK) @@ -173,7 +173,7 @@ /datum/loadout_item/suit_store/main_gun/marine/skirmish_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/marine/deployable, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x25mm, SLOT_IN_BACKPACK) @@ -197,7 +197,7 @@ /datum/loadout_item/suit_store/main_gun/marine/alf/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -228,7 +228,7 @@ /datum/loadout_item/suit_store/main_gun/marine/standard_gpmg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/marine/deployable, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -243,7 +243,7 @@ /datum/loadout_item/suit_store/main_gun/marine/standard_gpmg/role_post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) wearer.equip_to_slot_or_del(new /obj/item/storage/box/MRE, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) @@ -262,7 +262,7 @@ /datum/loadout_item/suit_store/main_gun/marine/standard_mmg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -287,7 +287,7 @@ wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m25/extended, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m25/extended, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x20mm, SLOT_IN_ACCESSORY) - else if(isstorage(wearer.back)) + else if(isstorageobj(wearer.back)) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) @@ -308,7 +308,7 @@ /datum/loadout_item/suit_store/main_gun/marine/laser_mg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/cell/lasgun/lasrifle, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/cell/lasgun/lasrifle, SLOT_IN_BACKPACK) @@ -340,7 +340,7 @@ /datum/loadout_item/suit_store/main_gun/marine/flamer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -365,7 +365,7 @@ wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m25/extended, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m25/extended, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x20mm, SLOT_IN_ACCESSORY) - else if(isstorage(wearer.back)) + else if(isstorageobj(wearer.back)) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) @@ -388,7 +388,7 @@ /datum/loadout_item/suit_store/main_gun/marine/shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_BACKPACK) @@ -422,7 +422,7 @@ /datum/loadout_item/suit_store/main_gun/marine/auto_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_BACKPACK) @@ -446,7 +446,7 @@ /datum/loadout_item/suit_store/main_gun/marine/laser_carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/cell/lasgun/lasrifle, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/cell/lasgun/lasrifle, SLOT_IN_BACKPACK) @@ -483,7 +483,7 @@ /datum/loadout_item/suit_store/main_gun/marine/scout_carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x24mm, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x24mm, SLOT_IN_BACKPACK) @@ -529,7 +529,7 @@ /datum/loadout_item/suit_store/main_gun/marine/smg_and_shield/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() wearer.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/marine, SLOT_L_HAND) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/tool/extinguisher, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/tool/weldingtool/largetank, SLOT_IN_BACKPACK) @@ -562,7 +562,7 @@ /datum/loadout_item/suit_store/main_gun/marine/standard_smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/tool/extinguisher, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m25/extended, SLOT_IN_BACKPACK) @@ -610,7 +610,7 @@ /datum/loadout_item/suit_store/main_gun/marine/scout_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_BACKPACK) @@ -649,7 +649,7 @@ /datum/loadout_item/suit_store/main_gun/marine/suppressed_carbine/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x24mm, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/standard_heavypistol, SLOT_IN_BACKPACK) @@ -687,7 +687,7 @@ /datum/loadout_item/suit_store/main_gun/marine/mag_gl/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return ..() wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/standard_machinepistol, SLOT_IN_BACKPACK) @@ -727,7 +727,7 @@ /datum/loadout_item/suit_store/main_gun/marine/plasma_smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -760,7 +760,7 @@ /datum/loadout_item/suit_store/main_gun/marine/plasma_rifle/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -794,7 +794,7 @@ /datum/loadout_item/suit_store/main_gun/marine/plasma_cannon/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/smartgunner.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/smartgunner.dm index 44c72d3d4d543..072194a09ed96 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/smartgunner.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/smartgunner.dm @@ -19,7 +19,7 @@ wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -77,7 +77,7 @@ wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/standard_spottingrifle/incendiary, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/standard_spottingrifle/tungsten, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/standard_spottingrifle/incendiary, SLOT_IN_BACKPACK) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/standard_spottingrifle/tungsten, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/squad_leader.dm b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/squad_leader.dm index f35179cace5d9..d18b4b013ba8a 100644 --- a/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/squad_leader.dm +++ b/code/datums/gamemodes/campaign/loadout_items/_TGMC/suit_storage/squad_leader.dm @@ -17,7 +17,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -58,7 +58,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -89,7 +89,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/plasma_pistol, SLOT_IN_BACKPACK) @@ -128,7 +128,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -159,7 +159,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/sticky, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x265mm, SLOT_IN_BACKPACK) @@ -191,7 +191,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/cloak, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new ammo_type, SLOT_IN_BACKPACK) @@ -226,7 +226,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/packet/p10x24mm, SLOT_IN_BACKPACK) @@ -264,7 +264,7 @@ /datum/loadout_item/suit_store/main_gun/squad_leader/standard_smg/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout) . = ..() - if(!isstorage(wearer.back)) //bruh + if(!isstorageobj(wearer.back)) //bruh wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new secondary_ammo_type, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m25/extended, SLOT_IN_ACCESSORY) @@ -317,7 +317,7 @@ wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) @@ -351,7 +351,7 @@ wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank/mini, SLOT_IN_ACCESSORY) wearer.equip_to_slot_or_del(new /obj/item/binoculars/fire_support/campaign, SLOT_IN_ACCESSORY) - if(!isstorage(wearer.back)) + if(!isstorageobj(wearer.back)) return wearer.equip_to_slot_or_del(new /obj/item/deployable_camera, SLOT_IN_BACKPACK) diff --git a/code/datums/gamemodes/campaign/missions/asat_capture.dm b/code/datums/gamemodes/campaign/missions/asat_capture.dm index a295e1a7411cb..040b31fa4f5e6 100644 --- a/code/datums/gamemodes/campaign/missions/asat_capture.dm +++ b/code/datums/gamemodes/campaign/missions/asat_capture.dm @@ -40,6 +40,24 @@ Protect the ASAT weapons at all costs. Do not allow them to be destroyed or to fall into enemy hands." starting_faction_additional_rewards = "Additional ICC support, ability to counteract TGMC drop pod usage" hostile_faction_additional_rewards = "Preserve the ability to use drop pods uncontested" + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
All targets captured and Terrans in disarray. Pack it up, you've done Mars proud!", + MISSION_HOSTILE_FACTION = "Major loss
All objectives lost. All remaining forces pull back, we'll get them next time.", + ), + MISSION_OUTCOME_MINOR_VICTORY = list( + MISSION_STARTING_FACTION = "Minor victory
Objectives achieved. Nice work Martians, head to exfil.", + MISSION_HOSTILE_FACTION = "Minor loss
Pull back all forces, we'll get them next time.", + ), + MISSION_OUTCOME_MINOR_LOSS = list( + MISSION_STARTING_FACTION = "Minor loss
Insufficient targts captured. All forces pull back, we'll get them next time.", + MISSION_HOSTILE_FACTION = "Minor victory
Excellent work marines, we held them off. Regroup and prepare for the counter attack!", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
Damn it, all surviving forces retreat. The operation is a failure.", + MISSION_HOSTILE_FACTION = "Major victory
Enemy forces routed, outstanding work! The SOM came to the wrong neighbourhood today marines!", + ), + ) objectives_total = 6 min_capture_amount = 5 @@ -56,6 +74,14 @@ starting_faction_objective_description = "Major Victory:Capture all [objectives_total] ASAT systems.[min_capture_amount ? " Minor Victory: Capture at least [min_capture_amount] ASAT systems." : ""]" hostile_faction_objective_description = "Major Victory:Prevent the capture of all [objectives_total] ASAT systems.[min_capture_amount ? " Minor Victory: Prevent the capture of atleast [objectives_total - min_capture_amount + 1] ASAT systems." : ""]" +/datum/campaign_mission/capture_mission/asat/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + switch(user.faction) + if(FACTION_TERRAGOV) + message = "Protect our ASAT systems at all cost! Deactivate any the SOM try and steal." + if(FACTION_SOM) + message = "Move fast marines. Capture every ASAT system you can, and we'll give the Terrans a taste of their own medicine!" + return ..() + /datum/campaign_mission/capture_mission/asat/check_mission_progress() if(outcome) return TRUE diff --git a/code/datums/gamemodes/campaign/missions/base_rescue.dm b/code/datums/gamemodes/campaign/missions/base_rescue.dm index a801811de73a8..f8504527bdcd4 100644 --- a/code/datums/gamemodes/campaign/missions/base_rescue.dm +++ b/code/datums/gamemodes/campaign/missions/base_rescue.dm @@ -38,6 +38,16 @@ starting_faction_additional_rewards = "NanoTrasen has offered a level of corporate assistance if their facility can be protected." hostile_faction_additional_rewards = "Improved relations with local militias will allow us to call on their assistance in the future." + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
SOM forces have been driven back, we've got them on the backfoot now marines!", + MISSION_HOSTILE_FACTION = "Major loss
The assault is a failure, pull back and regroup!", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
VIP assets destroyed, mission failure. Fallback and regroup marines.", + MISSION_HOSTILE_FACTION = "Major victory
Outstanding work Martians, Nanotrasen won't be coming back here any time soon!", + ), + ) /datum/campaign_mission/destroy_mission/base_rescue/load_mission() . = ..() @@ -67,7 +77,7 @@ var/datum/faction_stats/defending_team = mode.stat_list[defending_faction] defending_team.add_asset(/datum/campaign_asset/asset_disabler/tgmc_cas/instant) - defending_team.add_asset(/datum/campaign_asset/asset_disabler/tgmc_mortar) + defending_team.add_asset(/datum/campaign_asset/asset_disabler/tgmc_mortar/instant) /datum/campaign_mission/destroy_mission/base_rescue/load_mission_brief() starting_faction_mission_brief = "NanoTrasen has issues an emergency request for assistance at an isolated medical facility located in the Western Ayolan Ranges. \ @@ -83,6 +93,14 @@ starting_faction_objective_description = "Major Victory:Protect the NT base from SOM attack. Do not allow them to override the security lockdown and destroy NT's sensitive equipment" hostile_faction_objective_description = "Major Victory: Override the security lockdown on the NT facility and destroy whatever secrets they are working on" +/datum/campaign_mission/destroy_mission/base_rescue/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + switch(user.faction) + if(FACTION_TERRAGOV) + message = "The SOM have a headstart on us, move in quickly and defend the installation. Do not let them override the security lockdowns!" + if(FACTION_SOM) + message = "Nanotrasen is working on abominations here. Override the security lockdown so we can destroy their project. Show the people of this world we're fighting for them!" + return ..() + /datum/campaign_mission/destroy_mission/base_rescue/start_mission() . = ..() //We do this when the mission starts to stop nerds from wasting the militia roles pregame diff --git a/code/datums/gamemodes/campaign/missions/fire_support_raid.dm b/code/datums/gamemodes/campaign/missions/fire_support_raid.dm index ef1943b6e9213..372b71fc27d71 100644 --- a/code/datums/gamemodes/campaign/missions/fire_support_raid.dm +++ b/code/datums/gamemodes/campaign/missions/fire_support_raid.dm @@ -32,6 +32,24 @@ starting_faction_additional_rewards = "Severely degrade enemy fire support, preventing their use of mortars for a period of time." hostile_faction_additional_rewards = "Protect our fire support options to ensure continued access to mortar support. Additional equipment and fire support is available if you successfully defend this outpost." + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
All fire support targets are out of commission. Outstanding work, they won't forget this any time soon!", + MISSION_HOSTILE_FACTION = "Major loss
All objectives lost, fallback, fallback!.", + ), + MISSION_OUTCOME_MINOR_VICTORY = list( + MISSION_STARTING_FACTION = "Minor victory
Objectives achieved, great work. All forces prepare for redeployment.", + MISSION_HOSTILE_FACTION = "Minor loss
Fire support has been compromised. All forces regroup, we'll make them pay next time.", + ), + MISSION_OUTCOME_MINOR_LOSS = list( + MISSION_STARTING_FACTION = "Minor loss
Minimal damage confirmed, mission failed. All units, fallback to point delta.", + MISSION_HOSTILE_FACTION = "Minor victory
Enemy forces repelled, confirming fire support still at operational capacity. Great work everyone.", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
No permanent damage achieved. What are you doing out there? All forces, retreat!", + MISSION_HOSTILE_FACTION = "Major victory
Enemy attack completely neutralised. Unbelievable work team, we crushed them!", + ), + ) /datum/campaign_mission/destroy_mission/fire_support_raid/play_start_intro() intro_message = list( @@ -59,6 +77,16 @@ Repel the enemy and protect the installations until reinforcements can arrive. \ Loss of these fire support installations will significantly weaken our forces across this region." +/datum/campaign_mission/destroy_mission/fire_support_raid/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "Hustle marines, take out their howitzer positions before the SOM have time to react. Move out!" + if(FACTION_SOM) + message = "The Terrans are trying to destroy our howitzers. Hold them off at all costs, glory to Mars!" + return ..() + /datum/campaign_mission/destroy_mission/fire_support_raid/apply_major_victory() winning_faction = starting_faction var/datum/faction_stats/hostile_team = mode.stat_list[hostile_faction] @@ -106,3 +134,11 @@ objectives_total = 5 min_destruction_amount = 4 hostile_faction_additional_rewards = "Protect our fire support options to ensure continued access to mortar support. Combat robots and fire support is available if you successfully defend this outpost." + +/datum/campaign_mission/destroy_mission/fire_support_raid/som/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + switch(user.faction) + if(FACTION_TERRAGOV) + message = "SOM forces are closing in on our MLRS positions. Hold them back at all costs marines, do not let them take out our fire support!" + if(FACTION_SOM) + message = "MLRS positions identified. Break through their defenses and take them out. For Mars!" + return ..() diff --git a/code/datums/gamemodes/campaign/missions/mech_wars.dm b/code/datums/gamemodes/campaign/missions/mech_wars.dm index 558bb7b7d6eb5..2d233b6673230 100644 --- a/code/datums/gamemodes/campaign/missions/mech_wars.dm +++ b/code/datums/gamemodes/campaign/missions/mech_wars.dm @@ -12,6 +12,28 @@ mission_start_delay = 3 MINUTES //since there is actual mech prep time required starting_faction_additional_rewards = "Mechanised units will be allocated to your battalion for use in future missions." hostile_faction_additional_rewards = "Mechanised units will be allocated to your battalion for use in future missions." + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
AO is secured. Enemy mechanised units all confirmed destroyed or falling back, excellent work!", + MISSION_HOSTILE_FACTION = "Major loss
We've lost control of this area, all units, regroup and retreat, we'll make them pay next time.", + ), + MISSION_OUTCOME_MINOR_VICTORY = list( + MISSION_STARTING_FACTION = "Minor victory
Confirming hostile mechanised units have been degraded below combat ready status. We ground them down, good work.", + MISSION_HOSTILE_FACTION = "Minor loss
We've taken too many loses, all forces, pull back now!", + ), + MISSION_OUTCOME_DRAW = list( + MISSION_STARTING_FACTION = "Draw
This was bloodbath on both sides. Any surviving units, retreat to nearest exfil point.", + MISSION_HOSTILE_FACTION = "Draw
What a bloodbath. We bled for it, but enemy assault repelled.", + ), + MISSION_OUTCOME_MINOR_LOSS = list( + MISSION_STARTING_FACTION = "Minor loss
We're losing to many mechs. All remaining units, regroup at point Echo, fallback!", + MISSION_HOSTILE_FACTION = "Minor victory
Confirming enemy forces are falling back. All units regroup and prepare to pursue!", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
Control of AO lost, this is a disaster. All surviving units, retreat!", + MISSION_HOSTILE_FACTION = "Major victory
AO secured, enemy forces confirmed terminated or falling back. We've shown them who we are!", + ), + ) /datum/campaign_mission/tdm/mech_wars/play_start_intro() intro_message = list( @@ -29,6 +51,16 @@ Our mechanised forces here are vital to our future plans. The enemy assault has given us a unique opportunity to destroy a significant portion of their mechanised forces with a swift counter attack. \ Eliminate all hostiles you come across while preserving your own forces. Good hunting." +/datum/campaign_mission/tdm/mech_wars/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "Heavy mechanised hostile units closing on the AO! Smash their mechs into junk marines!" + if(FACTION_SOM) + message = "Terran mechanised units confirmed in the AO. Move in and wipe them out, for the glory of Mars!" + return ..() + /datum/campaign_mission/tdm/mech_wars/load_pre_mission_bonuses() var/mechs_to_spawn = round(length(GLOB.clients) * 0.2) + 1 var/obj/effect/landmark/campaign/mech_spawner/spawner diff --git a/code/datums/gamemodes/campaign/missions/patrol_mission.dm b/code/datums/gamemodes/campaign/missions/patrol_mission.dm index 62306fc261272..decc9a57007c6 100644 --- a/code/datums/gamemodes/campaign/missions/patrol_mission.dm +++ b/code/datums/gamemodes/campaign/missions/patrol_mission.dm @@ -34,6 +34,28 @@ Eliminate all hostiles you come across while preserving your own forces. Good hunting." starting_faction_additional_rewards = "If the enemy force is wiped out entirely, additional supplies can be diverted to your battalion." hostile_faction_additional_rewards = "If the enemy force is wiped out entirely, additional supplies can be diverted to your battalion." + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
AO secured, hostile forces are on the run. Outstanding work!", + MISSION_HOSTILE_FACTION = "Major loss
We've lost control of this area. All forces, pull back now!", + ), + MISSION_OUTCOME_MINOR_VICTORY = list( + MISSION_STARTING_FACTION = "Minor victory
We've smashed their forces, regroup and secure the area!", + MISSION_HOSTILE_FACTION = "Minor loss
We don't have the manpower to keep going, all forces retreat and regroup!", + ), + MISSION_OUTCOME_DRAW = list( + MISSION_STARTING_FACTION = "Draw
There's no victory here... Any survivors, get out of the AO.", + MISSION_HOSTILE_FACTION = "Draw
Enemy operation disrupted. It didn't come cheap though. Any survivors, regroup and fallback, we're going on the counter attack.", + ), + MISSION_OUTCOME_MINOR_LOSS = list( + MISSION_STARTING_FACTION = "Minor loss
Casualties are too high, we can't keep this up. All forces, fallback.", + MISSION_HOSTILE_FACTION = "Minor victory
Hostiles forces are falling back. Nice work everyone.", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
We've lost control here, all survivors retreat, this one is a loss.", + MISSION_HOSTILE_FACTION = "Major victory
Confirming control of AO. Hostile forces destroyed or retreat, outstanding work!", + ), + ) ///Point limit to win the game via objectives var/capture_point_target = 400 @@ -59,6 +81,16 @@ ) return ..() +/datum/campaign_mission/tdm/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "SOM patrol confirmed in the AO! Secure those towers and neutralise all hostile forces. Move it marines!" + if(FACTION_SOM) + message = "TGMC patrol identified in the AO. Secure those towers and eliminate every Terran you see. For Mars!" + return ..() + /datum/campaign_mission/tdm/get_status_tab_items(mob/source, list/items) . = ..() if(!length(GLOB.campaign_objectives)) diff --git a/code/datums/gamemodes/campaign/missions/phoron_capture.dm b/code/datums/gamemodes/campaign/missions/phoron_capture.dm index 9fb6074dfffe0..27832a6d76736 100644 --- a/code/datums/gamemodes/campaign/missions/phoron_capture.dm +++ b/code/datums/gamemodes/campaign/missions/phoron_capture.dm @@ -34,6 +34,38 @@ hostile_faction_additional_rewards = "Additional supplies for every phoron crate captured and local support" objectives_total = 11 min_capture_amount = 7 + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
How'd you manage to secure all of the phoron? Outstanding marines, drinks are on me!", + MISSION_HOSTILE_FACTION = "Major loss
How'd you let them capture ALL of the phoron? All forces, retreat, retreat!", + ), + MISSION_OUTCOME_MINOR_VICTORY = list( + MISSION_STARTING_FACTION = "Minor victory
Confirming successful capture. This is gonna be a costly one for the SOM!", + MISSION_HOSTILE_FACTION = "Minor loss
Majority of phoron lost. This one's a failure, regroup marines.", + ), + MISSION_OUTCOME_DRAW = list( + MISSION_STARTING_FACTION = "Draw
We made it costly for them, but not enough marines. All units, fallback.", + MISSION_HOSTILE_FACTION = "Draw
We've put a stop to those Terran thieves but it hasn't come cheap... All units, prepare for counter attack.", + ), + MISSION_OUTCOME_MINOR_LOSS = list( + MISSION_STARTING_FACTION = "Minor loss
Mission failed. We didn't get nearly enough phoron marines, fallback!", + MISSION_HOSTILE_FACTION = "Minor victory
Confirming phoron requirements met. They bit off more than they could chew, you've done Mars proud marines.", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
What a disaster, were you marines asleep out there? All forces, pull back!", + MISSION_HOSTILE_FACTION = "Major victory
All phoron recovered. Outstanding work marines, that'll teach them to try steal from the SOM!", + ), + ) + +/datum/campaign_mission/capture_mission/phoron_capture/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "We've caught the SOM with their pants down marines. Move in and secure all the phoron you can find!" + if(FACTION_SOM) + message = "TGMC fast movers are closing in! Secure all our phoron stores before those thieves can take it!" + return ..() /datum/campaign_mission/capture_mission/phoron_capture/apply_major_victory() . = ..() diff --git a/code/datums/gamemodes/campaign/missions/raiding_base.dm b/code/datums/gamemodes/campaign/missions/raiding_base.dm index e68fba26316a4..6ee2e7367c619 100644 --- a/code/datums/gamemodes/campaign/missions/raiding_base.dm +++ b/code/datums/gamemodes/campaign/missions/raiding_base.dm @@ -1,5 +1,5 @@ /datum/campaign_mission/raiding_base - name = "Raiding Base" + name = "SOM Raiding Base" mission_icon = "raiding_base" map_name = "Raiding base Zulu" map_file = '_maps/map_files/Campaign maps/som_raid_base/som_raiding_base.dmm' @@ -52,6 +52,8 @@ MISSION_HOSTILE_FACTION = "Major victory
Reinforcements are almost here and enemy forces are falling back, you've done Mars proud today marines.", ), ) + ///The type of beacon used in this mission + var/beacon_type = /obj/item/campaign_beacon/bunker_buster ///Records whether the OB has been called var/ob_called = FALSE ///Count of beacons still in play @@ -68,7 +70,7 @@ for(var/i = 1 to beacons_remaining) new /obj/item/explosive/plastique(get_turf(pick(GLOB.campaign_reward_spawners[hostile_faction]))) new /obj/item/explosive/plastique(get_turf(pick(GLOB.campaign_reward_spawners[hostile_faction]))) - new /obj/item/campaign_beacon/bunker_buster(get_turf(pick(GLOB.campaign_reward_spawners[starting_faction]))) + new beacon_type(get_turf(pick(GLOB.campaign_reward_spawners[starting_faction]))) /datum/campaign_mission/raiding_base/start_mission() . = ..() @@ -129,6 +131,16 @@ winning_team.add_asset(/datum/campaign_asset/mech/light/som) winning_team.add_asset(/datum/campaign_asset/equipment/gorgon_armor) +/datum/campaign_mission/raiding_base/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "Find any weak spots in the SOM's defences and deploy a beacon deep in their base. Lets wipe them off the map marines!" + if(FACTION_SOM) + message = "Keep those Terran dogs out of of Zulu. If they deploy a beacon it needs to be destroyed before they can call in a strike. Glory to Mars!" + return ..() + ///Returns a list of areas in which the beacon can be deployed /datum/campaign_mission/raiding_base/proc/get_valid_beacon_areas() return list( @@ -148,6 +160,10 @@ RegisterSignal(beacon, COMSIG_QDELETING, PROC_REF(beacon_destroyed)) pause_mission_timer(REF(beacon)) var/area/deployed_area = get_area(beacon) + play_beacon_deployed_annoucement(deployed_area) + +///Maptext alert when a beacon is placed +/datum/campaign_mission/raiding_base/proc/play_beacon_deployed_annoucement(area/deployed_area) map_text_broadcast(starting_faction, "Confirming beacon deployed in [deployed_area]. Defend it until we can secure a target lock marines!", "TGS Horizon", /atom/movable/screen/text/screen_text/picture/potrait/pod_officer, "sound/effects/alert.ogg") map_text_broadcast(hostile_faction, "Orbital beacon detected in [deployed_area]. Destroy that beacon before they can secure a target lock!", "Overwatch", sound_effect = "sound/effects/alert.ogg") @@ -174,7 +190,72 @@ ob_called = TRUE resume_mission_timer(src, TRUE) //We handle this here instead of the beacon structure because it could be destroyed before this triggers - explosion(location, 45, flame_range = 45) + explosion(location, 45, flame_range = 20) if(QDELETED(beacon)) return qdel(beacon) + +/datum/campaign_mission/raiding_base/som + name = "TGMC Raiding Base" + map_name = "Jeneora Valley" + map_file = '_maps/map_files/Campaign maps/tgmc_raid_base/tgmc_raiding_base.dmm' + map_traits = list(ZTRAIT_AWAY = TRUE) + map_light_colours = list(COLOR_MISSION_YELLOW, COLOR_MISSION_YELLOW, COLOR_MISSION_RED, COLOR_MISSION_RED) + starting_faction_objective_description = "Major Victory: Set and defend a bluespace beacon inside the facility until a bluespace strike can be called in." + hostile_faction_objective_description = "Major Victory: Prevent the enemy from activating a bluespace beacon inside the facility." + intro_message = list( + MISSION_STARTING_FACTION = "Infiltrate the TGMC base, then plant and defend a bluespace beacon until we can activate bluespace artillery!", + MISSION_HOSTILE_FACTION = "Stop SOM forces from infiltrating the base. Prevent them from activating a bluespace beacon at all costs!", + ) + mission_flags = MISSION_DISALLOW_TELEPORT + + starting_faction_mission_brief = "We have finally been able to track down a hidden TGMC outpost which they have been using as a base of operations to raid our supply lines, wrecking havoc on our logistics. \ + Your unit has been tasked with ensuring the complete and utter destruction of this base and everything within it. \ + Infiltrate the facility, then deploy one of the bluespace beacons you have been supplied with. \ + Defend the beacon until our bluespace artillery can secure a lock, and wipe out the base for good from the inside." + hostile_faction_mission_brief = "Intelligence has picked up a SOM plan to assault our base at Jeneora Valley. This base has been key to our sabotage and disruption efforts, significantly degrading SOM supply lines. \ + Intel suggests that the SOM are seeking to infiltrate the base to deploy a bluespace beacon, in order to call down an bluespace strike. \ + Prevent SOM forces from entering the base, and destroy any bluespace beacon they try to deploy." + starting_faction_additional_rewards = "Remove negative effects on our logistics" + hostile_faction_additional_rewards = "Allow us to continue degrading SOM logistics" + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
Confirming good hit. Successful destruction of target facility. Outstanding, glory to Mars!", + MISSION_HOSTILE_FACTION = "Major loss
We've lost Jeneora Valley, all remaining forces, fallback to exfil point Alpha, retreat!", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
TGMC interceptors are inbound, all forces fallback, this operation is a loss.", + MISSION_HOSTILE_FACTION = "Major victory
Reinforcements are almost here and enemy forces are falling back, you've done the Corp proud today marines.", + ), + ) + beacon_type = /obj/item/campaign_beacon/bunker_buster/bluespace + +/datum/campaign_mission/raiding_base/som/get_valid_beacon_areas() + return list( + /area/campaign/tgmc_raiding/underground/command, + /area/campaign/tgmc_raiding/underground/command/east, + /area/campaign/tgmc_raiding/underground/command/captain, + /area/campaign/tgmc_raiding/underground/medbay, + /area/campaign/tgmc_raiding/underground/security/central_outpost, + /area/campaign/tgmc_raiding/underground/general/hallway, + /area/campaign/tgmc_raiding/underground/general/hallway/west, + /area/campaign/tgmc_raiding/underground/living/offices, + ) + +/datum/campaign_mission/raiding_base/som/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "Defend the base at all costs. Hold back those rusters until reinforcements can arrive. Do not let them deploy a beacon!" + if(FACTION_SOM) + message = "Closing in on the Terran outpost. Breach their defences and get that beacon down. Glory to Mars!" + return ..() + +/datum/campaign_mission/raiding_base/som/play_beacon_deployed_annoucement(area/deployed_area) + map_text_broadcast(starting_faction, "Confirming beacon deployed in [deployed_area]. Defend it until bluespace artillery has a fix!", "Teleporter Command", /atom/movable/screen/text/screen_text/picture/potrait/som_scientist, "sound/effects/alert.ogg") + map_text_broadcast(hostile_faction, "Bluespace beacon detected in [deployed_area]. Destroy that beacon before they can call in a strike!", "Overwatch", sound_effect = "sound/effects/alert.ogg") + +/datum/campaign_mission/raiding_base/som/beacon_effect(obj/structure/campaign_objective/destruction_objective/bunker_buster/beacon, turf/location) + playsound(beacon, 'sound/magic/lightningbolt.ogg', 150, 0) + return ..() diff --git a/code/datums/gamemodes/campaign/missions/supply_raid.dm b/code/datums/gamemodes/campaign/missions/supply_raid.dm index 45b1843d8f4de..a3c98471ac3bc 100644 --- a/code/datums/gamemodes/campaign/missions/supply_raid.dm +++ b/code/datums/gamemodes/campaign/missions/supply_raid.dm @@ -26,6 +26,24 @@ ) starting_faction_additional_rewards = "Disrupt enemy supply routes, reducing enemy attrition generation for future missions." hostile_faction_additional_rewards = "Prevent the degradation of our attrition generation. Recon mech and gorgon armor available if you successfully protect this depot." + outro_message = list( + MISSION_OUTCOME_MAJOR_VICTORY = list( + MISSION_STARTING_FACTION = "Major victory
Enemy base is in ruins, outstanding work!", + MISSION_HOSTILE_FACTION = "Major loss
The base is a complete loss. All forces, retreat!", + ), + MISSION_OUTCOME_MINOR_VICTORY = list( + MISSION_STARTING_FACTION = "Minor victory
Outstanding work, they won't be recovering from this any time soon!", + MISSION_HOSTILE_FACTION = "Minor loss
This one is a loss. All units regroup, we'll get them next time..", + ), + MISSION_OUTCOME_MINOR_LOSS = list( + MISSION_STARTING_FACTION = "Minor loss
Mission failed, they're still up and running. All forces, fallback!", + MISSION_HOSTILE_FACTION = "Minor victory
We drove them back, confirming minimal damage. Excellent work.", + ), + MISSION_OUTCOME_MAJOR_LOSS = list( + MISSION_STARTING_FACTION = "Major loss
No notable damage inflicted, what are we doing out there? All forces, retreat!", + MISSION_HOSTILE_FACTION = "Major victory
Enemy assault completely neutralised. Outstanding work!", + ), + ) /datum/campaign_mission/destroy_mission/supply_raid/play_start_intro() intro_message = list( @@ -42,6 +60,16 @@ Repel the enemy and protect the installation until reinforcements can arrive. \ Loss of this depot will significantly degrade our logistical capabilities and weaken our forces going forwards." +/datum/campaign_mission/destroy_mission/supply_raid/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "This base is a key logistic hub for the SOM. Tear it apart and they're crippled in this region. Hustle marines!" + if(FACTION_SOM) + message = "This is a key logistics hub for us. Hold the line marines, throw back those Terran dogs and show them Martian resolve!" + return ..() + /datum/campaign_mission/destroy_mission/supply_raid/load_pre_mission_bonuses() . = ..() spawn_mech(defending_faction, 0, 1) @@ -89,3 +117,13 @@ objectives_total = 8 min_destruction_amount = 6 hostile_faction_additional_rewards = "Prevent the degradation of our attrition generation. B18 power armour available if you successfully protect this depot." + +/datum/campaign_mission/destroy_mission/supply_raid/som/get_mission_deploy_message(mob/living/user, text_source = "Overwatch", portrait_to_use = GLOB.faction_to_portrait[user.faction], message) + if(message) + return ..() + switch(user.faction) + if(FACTION_TERRAGOV) + message = "This base is a key logistic hub for us. Repel the SOM marauders, protect our assets at all costs!" + if(FACTION_SOM) + message = "This is a key logistics hub for the TGMC. Smash through their defences and destroy the marked targets. Glory to Mars!" + return ..() diff --git a/code/datums/gamemodes/campaign/perks.dm b/code/datums/gamemodes/campaign/perks.dm index 53db3189653a3..21e20e042db90 100644 --- a/code/datums/gamemodes/campaign/perks.dm +++ b/code/datums/gamemodes/campaign/perks.dm @@ -100,7 +100,8 @@ Needed both for a purchase list and effected list (if one perk impacts multiple /datum/perk/trait/hp_boost name = "Improved constitution" - desc = "Through disciplined training and hypno indoctrination, your body is able to tolerate higher levels of trauma. +25 max health, +25 pain resistance." + desc = "Through disciplined training and hypno indoctrination, your body is able to tolerate higher levels of trauma. +25 max health, +25 pain resistance. \ + Also unlocks heavier armor for most roles." ui_icon = "health_1" all_jobs = TRUE unlock_cost = 800 @@ -116,6 +117,18 @@ Needed both for a purchase list and effected list (if one perk impacts multiple . = ..() owner.maxHealth -= health_mod +/datum/perk/trait/hp_boost/unlock_bonus(mob/living/carbon/owner, datum/individual_stats/owner_stats) + if(owner_stats.faction == FACTION_TERRAGOV) + owner_stats.replace_loadout_option(/datum/loadout_item/suit_slot/heavy_tyr/universal, /datum/loadout_item/suit_slot/heavy_tyr, SQUAD_MARINE) + owner_stats.unlock_loadout_item(/datum/loadout_item/suit_slot/heavy_tyr/universal, list(SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_LEADER, FIELD_COMMANDER), owner) + owner_stats.unlock_loadout_item(/datum/loadout_item/helmet/tyr/universal, list(SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_LEADER, FIELD_COMMANDER), owner) + + else if(owner_stats.faction == FACTION_SOM) + owner_stats.replace_loadout_option(/datum/loadout_item/suit_slot/som_heavy_tyr/universal, /datum/loadout_item/suit_slot/som_heavy_tyr, SOM_SQUAD_MARINE) + owner_stats.replace_loadout_option(/datum/loadout_item/suit_slot/som_heavy_tyr/universal, /datum/loadout_item/suit_slot/som_heavy_tyr/veteran, SOM_SQUAD_VETERAN) + owner_stats.unlock_loadout_item(/datum/loadout_item/suit_slot/som_heavy_tyr/universal, list(SOM_SQUAD_CORPSMAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_LEADER, SOM_FIELD_COMMANDER), owner) + owner_stats.unlock_loadout_item(/datum/loadout_item/helmet/som_tyr/universal, list(SOM_SQUAD_CORPSMAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_LEADER, SOM_FIELD_COMMANDER), owner) + /datum/perk/trait/hp_boost/two name = "Extreme constitution" desc = "Military grade biological augmentations are used to harden your body against grievous bodily harm. Provides an addition +25 max health and +10 pain resistance." @@ -125,6 +138,9 @@ Needed both for a purchase list and effected list (if one perk impacts multiple traits = list(TRAIT_MEDIUM_PAIN_RESIST) unlock_cost = 1000 +/datum/perk/trait/hp_boost/two/unlock_bonus(mob/living/carbon/owner, datum/individual_stats/owner_stats) + return + /datum/perk/trait/quiet name = "Light footed" desc = "Quiet when running, silent when walking." diff --git a/code/datums/gamemodes/campaign/rewards/disablers.dm b/code/datums/gamemodes/campaign/rewards/disablers.dm index 4baca3435c22e..3d9e41fd23e29 100644 --- a/code/datums/gamemodes/campaign/rewards/disablers.dm +++ b/code/datums/gamemodes/campaign/rewards/disablers.dm @@ -92,6 +92,11 @@ /datum/campaign_asset/asset_disabler/tgmc_mortar/long uses = 3 +/datum/campaign_asset/asset_disabler/tgmc_mortar/instant + uses = 1 + instant_use = TRUE + detailed_desc = "Hostile assets in the AO are preventing the use of mortar support during this mission." + /datum/campaign_asset/asset_disabler/som_mortar name = "Mortar support disabled" desc = "Mortar fire support temporarily disabled" diff --git a/code/datums/gamemodes/campaign/rewards/reserves.dm b/code/datums/gamemodes/campaign/rewards/reserves.dm index 558c4e2d9db7f..27f18f45d3f1a 100644 --- a/code/datums/gamemodes/campaign/rewards/reserves.dm +++ b/code/datums/gamemodes/campaign/rewards/reserves.dm @@ -1,7 +1,7 @@ /datum/campaign_asset/strategic_reserves name = "Strategic Reserve" desc = "Emergency reserve forces" - detailed_desc = "A strategic reserve force is activated to bolster your numbers, increasing your active attrition significantly. Additionally, the respawn delay for your team is reduced by 90 seconds. Can only be used when defending a mission, and only once per campaign." + detailed_desc = "A strategic reserve force is activated to bolster your numbers, increasing your active attrition significantly. Additionally, the respawn delay for your team is reduced by 90 seconds. Can only be used when the opponent has initiated a mission, and only once per campaign." ui_icon = "reserve_force" uses = 1 asset_flags = ASSET_ACTIVATED_EFFECT|ASSET_DISABLE_ON_MISSION_END|ASSET_DISALLOW_REPEAT_USE diff --git a/code/datums/gamemodes/campaign/rewards/teleporter.dm b/code/datums/gamemodes/campaign/rewards/teleporter.dm index afb477b690e74..9a68b9153a503 100644 --- a/code/datums/gamemodes/campaign/rewards/teleporter.dm +++ b/code/datums/gamemodes/campaign/rewards/teleporter.dm @@ -5,7 +5,7 @@ detailed_desc = "Established a link between our Teleporter Array and its master Bluespace drive, allowing its operation during the current or next mission." asset_portrait = /atom/movable/screen/text/screen_text/picture/potrait/som_scientist ui_icon = "tele_active" - uses = 2 + uses = 3 cost = 5 asset_flags = ASSET_ACTIVATED_EFFECT|ASSET_ACTIVE_MISSION_ONLY|ASSET_DISABLE_ON_MISSION_END|ASSET_DISALLOW_REPEAT_USE already_active_message = "The Teleporter Array is already activated!" @@ -42,18 +42,18 @@ //adds more charges /datum/campaign_asset/teleporter_charges name = "Teleporter Array charges" - desc = "+2 uses of the Teleporter Array" - detailed_desc = "Central command have allocated the battalion with two additional uses of the Teleporter Array. Its extremely costly to run and demand is high across the conflict zone, so make them count." + desc = "+6 uses of the Teleporter Array" + detailed_desc = "Central command have allocated the battalion with six additional uses of the Teleporter Array, with two added per use. Its extremely costly to run and demand is high across the conflict zone, so make them count." asset_portrait = /atom/movable/screen/text/screen_text/picture/potrait/som_scientist ui_icon = "tele_uses" - uses = 3 + uses = 6 cost = 6 /datum/campaign_asset/teleporter_charges/activated_effect() for(var/obj/structure/teleporter_array/teleporter AS in GLOB.teleporter_arrays) if(teleporter.faction != faction.faction) continue - teleporter.charges ++ + teleporter.charges += 2 to_chat(faction.faction_leader, span_warning("An additional activation of the Teleporter Array is now ready for use.")) return diff --git a/code/datums/gamemodes/combat_patrol.dm b/code/datums/gamemodes/combat_patrol.dm index f1ec6c67a9367..7d672f80dffb6 100644 --- a/code/datums/gamemodes/combat_patrol.dm +++ b/code/datums/gamemodes/combat_patrol.dm @@ -119,6 +119,13 @@ log_game("[round_finished]\nGame mode: [name]\nRound time: [duration2text()]\nEnd round player population: [length(GLOB.clients)]\nTotal TGMC spawned: [GLOB.round_statistics.total_humans_created[FACTION_TERRAGOV]]\nTotal SOM spawned: [GLOB.round_statistics.total_humans_created[FACTION_SOM]]") to_chat(world, span_round_body("Thus ends the story of the brave men and women of both the TGMC and SOM, and their struggle on [SSmapping.configs[GROUND_MAP].map_name].")) +/datum/game_mode/hvh/combat_patrol/get_deploy_point_message(mob/living/user) + switch(user.faction) + if(FACTION_TERRAGOV) + . = "Eliminate all hostile forces in the AO, good luck team." + if(FACTION_SOM) + . = "Eliminate the TerraGov imperialists in the AO, glory to Mars!" + ///round timer /datum/game_mode/hvh/combat_patrol/proc/set_game_timer() if(!iscombatpatrolgamemode(SSticker.mode)) diff --git a/code/datums/gamemodes/hvh.dm b/code/datums/gamemodes/hvh.dm index ecb7cd077f5ef..4b001fcf92b8c 100644 --- a/code/datums/gamemodes/hvh.dm +++ b/code/datums/gamemodes/hvh.dm @@ -24,6 +24,10 @@ /// Time between two bioscan var/bioscan_interval = 3 MINUTES +/datum/game_mode/hvh/setup() + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_HVH_DEPLOY_POINT_ACTIVATED, PROC_REF(deploy_point_activated)) + /datum/game_mode/hvh/post_setup() . = ..() for(var/z_num in SSmapping.areas_in_z) @@ -173,4 +177,21 @@ Sensors indicate [num_som_delta || "no"] unknown lifeform signature[num_som_delt message_admins("Bioscan - Marines: [num_tgmc] active TGMC personnel[tgmc_location ? " .Location:[tgmc_location]":""]") message_admins("Bioscan - SOM: [num_som] active SOM personnel[som_location ? " .Location:[som_location]":""]") +///Messages a mob when they deploy groundside. only called if the specific gamemode register for the signal +/datum/game_mode/hvh/proc/deploy_point_activated(datum/source, mob/living/user) + SIGNAL_HANDLER + var/message = get_deploy_point_message(user) + if(!message) + return + user.playsound_local(user, "sound/effects/CIC_order.ogg", 10, 1) + user.play_screen_text("OVERWATCH
" + message, GLOB.faction_to_portrait[user.faction]) + +///Returns a message to play to a mob when they deploy into the AO +/datum/game_mode/hvh/proc/get_deploy_point_message(mob/living/user) + switch(user.faction) + if(FACTION_TERRAGOV) + . = "Stick together and achieve those objectives marines. Good luck." + if(FACTION_SOM) + . = "Remember your training marines, show those Terrans the strength of the SOM, glory to Mars!" + #undef BIOSCAN_DELTA diff --git a/code/datums/gamemodes/offduty.dm b/code/datums/gamemodes/offduty.dm deleted file mode 100644 index 262953db87739..0000000000000 --- a/code/datums/gamemodes/offduty.dm +++ /dev/null @@ -1,62 +0,0 @@ -/datum/game_mode/offduty - name = "Off-Duty" - config_tag = "Off-Duty" - required_players = 0 - votable = FALSE - allow_persistence_save = FALSE - var/operation_start_timer - -/datum/game_mode/offduty/announce() - to_chat(world, "The current game mode is - Off-Duty!") - to_chat(world, "Just have fun and role-play! Don't do harm to your fellow comrades!") - -/datum/game_mode/offduty/post_setup() - . = ..() - addtimer(CALLBACK(PROC_REF(start_round_end)), 10 SECONDS) - - if(!operation_start_timer) - return TRUE - -/datum/game_mode/offduty/check_finished() - var/round_end_stage = 0 - - if(round_end_stage == 2) - return TRUE - return FALSE - - if(world.time < (SSticker.round_start_time + 5 SECONDS)) - return FALSE - -/datum/game_mode/offduty/process() - if(round_finished) - return FALSE - -/datum/game_mode/offduty/declare_completion() - . = ..() - to_chat(world, span_round_header("|Round Complete|")) - to_chat(world, span_round_body("Thus ends the story of the men and women of the [SSmapping.configs[SHIP_MAP].map_name] and their day-off on [SSmapping.configs[GROUND_MAP].map_name].")) - var/sound/S = sound(pick('sound/theme/neutral_hopeful1.ogg','sound/theme/neutral_hopeful2.ogg'), channel = CHANNEL_CINEMATIC) - SEND_SOUND(world, S) - - log_game("[round_finished]\nGame mode: [name]\nRound time: [duration2text()]\nEnd round player population: [length(GLOB.clients)]\nTotal xenos spawned: [GLOB.round_statistics.total_xenos_created]\nTotal humans spawned: [GLOB.round_statistics.total_humans_created]") - - announce_medal_awards() - announce_round_stats() - -/datum/game_mode/offduty/proc/start_round_end() - check_finished(TRUE) - var/datum/game_mode/offduty/check_finished/round_end_stage = 1 - -/datum/game_mode/offduty/proc/get_operation_start_countdown() - if(!operation_start_timer) - return - var/eta = timeleft(operation_start_timer) * 0.1 - if(eta > 0) - return "[(eta / 60) % 60]:[add_zero(num2text(eta % 60), 2)]" -/* Sigh, this part isn't working. - XSlayer300 -/datum/game_mode/offduty/proc/announce_deployment(announce_humans = TRUE) - var/name = "[MAIN_AI_SYSTEM] Signal Decrypted" - var/input = {"A TGMC distress signal has been decrypted in an unknown location.

Prepare for deployment and briefing."} - - if(var/round_end_stage == 2) - priority_announce(input, name, sound = 'sound/AI/bioscan.ogg')*/ diff --git a/code/datums/gamemodes/sensor_capture.dm b/code/datums/gamemodes/sensor_capture.dm index abd6f12bf0752..91a81f126a8a7 100644 --- a/code/datums/gamemodes/sensor_capture.dm +++ b/code/datums/gamemodes/sensor_capture.dm @@ -42,3 +42,10 @@ /datum/game_mode/hvh/combat_patrol/sensor_capture/get_status_tab_items(datum/dcs, mob/source, list/items) . = ..() items += "Activated Sensor Towers: [sensors_activated]" + +/datum/game_mode/hvh/combat_patrol/sensor_capture/get_deploy_point_message(mob/living/user) + switch(user.faction) + if(FACTION_TERRAGOV) + . = "Reactivate all sensor towers, good luck marines." + if(FACTION_SOM) + . = "Prevent reactivation of the sensor towers, glory to Mars!" diff --git a/code/datums/gamemodes/zombie_crash.dm b/code/datums/gamemodes/zombie_crash.dm index b5de055ee3d5d..5897f78e0eea2 100644 --- a/code/datums/gamemodes/zombie_crash.dm +++ b/code/datums/gamemodes/zombie_crash.dm @@ -1,7 +1,7 @@ /datum/game_mode/infestation/crash/zombie name = "Zombie Crash" config_tag = "Zombie Crash" - round_type_flags = MODE_XENO_SPAWN_PROTECTION + round_type_flags = MODE_XENO_SPAWN_PROTECT valid_job_types = list( /datum/job/terragov/squad/standard = -1, /datum/job/terragov/squad/engineer = 8, @@ -20,8 +20,5 @@ /datum/game_mode/infestation/crash/zombie/on_nuke_started(datum/source, obj/machinery/nuclearbomb/nuke) return -/datum/game_mode/infestation/crash/zombie/on_xeno_evolve(datum/source, mob/living/carbon/xenomorph/new_xeno) - return - /datum/game_mode/infestation/crash/zombie/balance_scales() zombie_points += get_total_joblarvaworth() diff --git a/code/datums/greyscale/greyscale_configs.dm b/code/datums/greyscale/greyscale_configs.dm index bde58cd53a04e..35a93593bcbfb 100644 --- a/code/datums/greyscale/greyscale_configs.dm +++ b/code/datums/greyscale/greyscale_configs.dm @@ -97,6 +97,9 @@ /datum/greyscale_config/armor_mk1/skirmisher icon_file = 'icons/mob/modular/mark_one/skirmisher.dmi' +/datum/greyscale_config/armor_mk1/mjolnir + icon_file = 'icons/mob/modular/mark_one/mjolnir.dmi' + //Hardsuits /datum/greyscale_config/hardsuit_variant @@ -150,6 +153,9 @@ /datum/greyscale_config/armor_mk2/trooper icon_file = 'icons/mob/modular/mark_two/trooper.dmi' +/datum/greyscale_config/armor_mk2/mjolnir_open + icon_file = 'icons/mob/modular/mark_two/mjolnir_open.dmi' + /datum/greyscale_config/xenonaut icon_file = 'icons/mob/modular/xenonauten.dmi' json_config = 'code/datums/greyscale/json_configs/xenonaut.json' diff --git a/code/datums/greyscale/json_configs/visors.json b/code/datums/greyscale/json_configs/visors.json index 95e7812e2af1d..30ed6ca4d0b3c 100644 --- a/code/datums/greyscale/json_configs/visors.json +++ b/code/datums/greyscale/json_configs/visors.json @@ -59,6 +59,18 @@ "icon_state": "eod" } ], + "mjolnir_visor": [ + { + "type": "hyperscale", + "icon_state": "mjolnir" + } + ], + "mjolnir_open_visor": [ + { + "type": "hyperscale", + "icon_state": "mjolnir_open" + } + ], "r_light": [ { "type": "hyperscale", diff --git a/code/datums/jobs/job/job.dm b/code/datums/jobs/job/job.dm index b49b5c2b0efd5..7a264169c2e55 100644 --- a/code/datums/jobs/job/job.dm +++ b/code/datums/jobs/job/job.dm @@ -79,6 +79,8 @@ GLOBAL_PROTECT(exp_specialmap) else outfit = new outfit //Can be improved to reference a singleton. +///called during gamemode pre_setup, use for stuff like roundstart poplock +/datum/job/proc/on_pre_setup() /datum/job/proc/after_spawn(mob/living/L, mob/M, latejoin = FALSE) //do actions on L but send messages to M as the key may not have been transferred_yet if(isnull(L)) diff --git a/code/datums/jobs/job/marines.dm b/code/datums/jobs/job/marines.dm index 1cb6e4c48d600..56545b62b54cf 100644 --- a/code/datums/jobs/job/marines.dm +++ b/code/datums/jobs/job/marines.dm @@ -45,7 +45,6 @@ Make your way to the cafeteria for some post-cryosleep chow, and then get equipp /datum/job/terragov/squad/engineer = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Easy

@@ -108,7 +107,6 @@ What you lack alone, you gain standing shoulder to shoulder with the men and wom /datum/job/terragov/squad/corpsman = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) job_points_needed = 5 html_description = {" @@ -169,7 +167,6 @@ Your squaddies will look to you when it comes to construction in the field of ba jobworth = list( /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, /datum/job/xenomorph = LARVA_POINTS_REGULAR, /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_MEDIUM, /datum/job/terragov/squad/engineer = SMARTIE_POINTS_REGULAR, @@ -240,15 +237,15 @@ You may not be a fully-fledged doctor, but you stand between life and death when You answer to the acting Squad Leader

Unlock Requirement: Starting Role

Gamemode Availability: Crash, Nuclear War


- When it comes to heavy firepower during the early stages of an operation, TGMC has provided the squad with Smartgunners. They are those who trained to operate the SG-29 Smart Machine Gun, an IFF heavy weapon that provides cover fire even directly behind the marines. Squad Smartgunners are best when fighting behind marines, as they can act as shields or during a hectic crossfire. + When it comes to heavy firepower during the early stages of an operation, TGMC has provided the squad with Smartgunners. They are those who trained to operate smart weapons, built-in IFF weapons that provides covering and suppressive fire even directly behind the marines. Squad Smartgunners are best when fighting behind marines, as they can act as shields or during a hectic crossfire.

- Duty: Be the backline of your pointmen, provide heavy weapons support with your smart machine gun. + Duty: Be the backline of your pointmen, provide heavy weapons support with your smart weapon. "} minimap_icon = "smartgunner" /datum/job/terragov/squad/smartgunner/radio_help_message(mob/M) . = ..() - to_chat(M, {"\nYou are the smartgunner. Your job is to provide heavy weapons support."}) + to_chat(M, {"\nYou are the smartgunner. Your job is to provide IFF weapons support."}) /datum/job/terragov/squad/smartgunner/after_spawn(mob/living/carbon/new_mob, mob/user, latejoin = FALSE) . = ..() @@ -333,7 +330,6 @@ You can serve a variety of roles, so choose carefully."}) /datum/job/terragov/squad/engineer = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Hard

@@ -400,7 +396,6 @@ You are also in charge of communicating with command and letting them know about /datum/job/xenomorph = LARVA_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) minimap_icon = "private" diff --git a/code/datums/jobs/job/shipside.dm b/code/datums/jobs/job/shipside.dm index 7f3407d92f3cb..7790626439ff8 100644 --- a/code/datums/jobs/job/shipside.dm +++ b/code/datums/jobs/job/shipside.dm @@ -32,7 +32,6 @@ /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Hard

@@ -83,9 +82,10 @@ Godspeed, captain! And remember, you are not above the law."}) w_uniform = /obj/item/clothing/under/marine/officer/command shoes = /obj/item/clothing/shoes/marinechief/captain gloves = /obj/item/clothing/gloves/marine/techofficer/captain - head = /obj/item/clothing/head/tgmcberet/tan + head = /obj/item/clothing/head/beret/marine/captain r_store = /obj/item/storage/pouch/general/large/command l_store = /obj/item/hud_tablet/leadership + back = /obj/item/storage/backpack/marine/satchel/captain_cloak /datum/outfit/job/command/captain/robot species = SPECIES_COMBAT_ROBOT @@ -128,7 +128,6 @@ Godspeed, captain! And remember, you are not above the law."}) /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty:Very Hard

@@ -231,7 +230,6 @@ Make the TGMC proud!"}) /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Medium

@@ -317,7 +315,6 @@ You are in charge of logistics and the overwatch system. You are also in line to /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Hard

@@ -396,7 +393,6 @@ You are to ensure the Tadpole's survival and to transport marines around, acting /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Medium

@@ -468,7 +464,6 @@ Though you are a warrant officer, your authority is limited to the dropship and jobworth = list( /datum/job/xenomorph = LARVA_POINTS_REGULAR, /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty:Very Hard

@@ -518,6 +513,7 @@ You can serve your Division in a variety of roles, so choose carefully."}) shoes = /obj/item/clothing/shoes/marine/full gloves = /obj/item/clothing/gloves/marine +#define ASSAULT_CREWMAN_POPLOCK 50 //tank/arty driver+gunner /datum/job/terragov/command/assault_crewman title = ASSAULT_CREWMAN @@ -525,6 +521,7 @@ You can serve your Division in a variety of roles, so choose carefully."}) paygrade = "E3" comm_title = "AC" total_positions = 0 + max_positions = 2 skills_type = /datum/skills/assault_crewman access = list(ACCESS_MARINE_WO, ACCESS_MARINE_PREP, ACCESS_MARINE_ARMORED, ACCESS_CIVILIAN_PUBLIC) minimal_access = list(ACCESS_MARINE_WO, ACCESS_MARINE_PREP, ACCESS_MARINE_ARMORED, ACCESS_CIVILIAN_PUBLIC, ACCESS_MARINE_BRIDGE, ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_LOGISTICS, ACCESS_MARINE_CARGO) @@ -533,7 +530,7 @@ You can serve your Division in a variety of roles, so choose carefully."}) exp_requirements = XP_REQ_EXPERT exp_type = EXP_TYPE_REGULAR_ALL job_flags = JOB_FLAG_LATEJOINABLE|JOB_FLAG_ROUNDSTARTJOINABLE|JOB_FLAG_ALLOWS_PREFS_GEAR|JOB_FLAG_PROVIDES_BANK_ACCOUNT|JOB_FLAG_ADDTOMANIFEST|JOB_FLAG_PROVIDES_SQUAD_HUD|JOB_FLAG_CAN_SEE_ORDERS|JOB_FLAG_ALWAYS_VISIBLE_ON_MINIMAP - job_points_needed = 999 //50 + job_points_needed = 35 jobworth = list( /datum/job/xenomorph = LARVA_POINTS_REGULAR, /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, @@ -547,10 +544,11 @@ You can serve your Division in a variety of roles, so choose carefully."}) "} minimap_icon = "assault_crew" -/datum/job/terragov/command/assault_crewman/add_job_points(amount) - . = ..() - if(total_positions % 2) - add_job_positions(1) //always 2 there are, a master and an apprentice +/datum/job/terragov/command/assault_crewman/on_pre_setup() + if(total_positions) + return + if(length(GLOB.clients) >= ASSAULT_CREWMAN_POPLOCK) + add_job_positions(2) //always 2 there are, a master and an apprentice /datum/job/terragov/command/assault_crewman/radio_help_message(mob/M) . = ..() @@ -589,8 +587,9 @@ You can serve your Division in a variety of roles, so choose carefully."}) head = /obj/item/clothing/head/helmet/marine/assault_crewman shoes = /obj/item/clothing/shoes/marine/full gloves = /obj/item/clothing/gloves/marine + l_store = /obj/item/pamphlet/tank_loader - +#define TRANSPORT_CREWMAN_POPLOCK 30 //apc/jeep driver /datum/job/terragov/command/transport_crewman title = TRANSPORT_CREWMAN @@ -598,6 +597,7 @@ You can serve your Division in a variety of roles, so choose carefully."}) paygrade = "E3" comm_title = "TC" total_positions = 0 + max_positions = 1 skills_type = /datum/skills/transport_crewman access = list(ACCESS_MARINE_WO, ACCESS_MARINE_PREP, ACCESS_MARINE_ARMORED, ACCESS_CIVILIAN_PUBLIC) minimal_access = list(ACCESS_MARINE_WO, ACCESS_MARINE_PREP, ACCESS_MARINE_ARMORED, ACCESS_CIVILIAN_PUBLIC, ACCESS_MARINE_BRIDGE, ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_LOGISTICS, ACCESS_MARINE_CARGO) @@ -624,6 +624,12 @@ You can serve your Division in a variety of roles, so choose carefully."}) . = ..() to_chat(M, {"You are a Transport Crewman. You operate the TGMC's transport vehciles to ensure that marines and equipment gets to the front in a timely and safe manner."}) +/datum/job/terragov/command/transport_crewman/on_pre_setup() + if(total_positions) + return + if(length(GLOB.clients) >= TRANSPORT_CREWMAN_POPLOCK) + add_job_positions(1) + /datum/job/terragov/command/transport_crewman/after_spawn(mob/living/carbon/new_mob, mob/user, latejoin = FALSE) . = ..() if(!ishuman(new_mob)) @@ -685,7 +691,6 @@ You can serve your Division in a variety of roles, so choose carefully."}) /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Hard

@@ -760,7 +765,6 @@ You are also next in the chain of command, should the bridge crew fall in the li /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Medium

@@ -839,7 +843,6 @@ requisitions line and later on to be ready to send supplies for marines who are /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Medium

@@ -927,7 +930,6 @@ A happy ship is a well-functioning ship."}) /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Hard

@@ -1012,7 +1014,6 @@ Make sure that the doctors and nurses are doing their jobs and keeping the marin /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Medium

@@ -1099,7 +1100,6 @@ You are also an expert when it comes to medication and treatment. If you do not /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Medium

@@ -1186,7 +1186,6 @@ It is also recommended that you gear up like a regular marine, or your 'internsh /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Hard (varies)

@@ -1261,7 +1260,6 @@ Use your office fax machine to communicate with corporate headquarters or to acq /datum/job/xenomorph = LARVA_POINTS_SHIPSIDE_STRONG, /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Soul Crushing

@@ -1340,7 +1338,6 @@ In addition, being a Synthetic gives you knowledge in every field and specializa /datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR, /datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR, /datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR, - /datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR, ) html_description = {" Difficulty: Easy

diff --git a/code/datums/keybinding/xeno.dm b/code/datums/keybinding/xeno.dm index 1c1d3e5a7586b..60deb28983fdb 100644 --- a/code/datums/keybinding/xeno.dm +++ b/code/datums/keybinding/xeno.dm @@ -43,13 +43,13 @@ /datum/keybinding/xeno/secrete_resin name = "secrete_resin" full_name = "Secrete Resin" - description = "Builds whatever you’ve selected with (choose resin structure) on your tile." + description = "Builds whatever you've selected with (choose resin structure) on your tile." keybind_signal = COMSIG_XENOABILITY_SECRETE_RESIN hotkey_keys = list("R") /datum/keybinding/xeno/secrete_special_resin name = "secrete_special_resin" - full name = "Secrete Special Resin" + full_name = "Secrete Special Resin" description = "Builds whatever special resin you have selected." keybind_signal = COMSIG_XENOABILITY_SECRETE_SPECIAL_RESIN hotkey_keys = list("ShiftR") @@ -1072,11 +1072,17 @@ description = "Burrow freshly created tendrils to tangle organics in a 3x3 patch." keybind_signal = COMSIG_XENOABILITY_TENDRILS -/datum/keybinding/xeno/send_orders_puppet - name = "Give Orders to Puppets" - full_name = "Puppeteer: Give Orders to Puppets" - description = "Give orders to your puppets, altering their behaviour." - keybind_signal = COMSIG_XENOABILITY_SENDORDERS +/datum/keybinding/xeno/unleash_puppet + name = "Unleash puppets" + full_name = "Puppeteer: Unleash puppets" + description = "Unleash puppets to attack nearby humans." + keybind_signal = COMSIG_XENOABILITY_UNLEASHPUPPETS + +/datum/keybinding/xeno/recall_puppet + name = "Recall puppets" + full_name = "Puppeteer: Recall puppets" + description = "Recalls your puppets, making them follow you once more" + keybind_signal = COMSIG_XENOABILITY_RECALLPUPPETS /datum/keybinding/xeno/bestow_blessing name = "Bestow Blessings" diff --git a/code/datums/loadout/item_representation/_item_representation.dm b/code/datums/loadout/item_representation/_item_representation.dm index cfad25fc22877..ca87faf4e5359 100644 --- a/code/datums/loadout/item_representation/_item_representation.dm +++ b/code/datums/loadout/item_representation/_item_representation.dm @@ -12,9 +12,11 @@ var/variant /// If it's allowed to bypass the vendor check var/bypass_vendor_check = FALSE + /// The contents in the storage (If there is storage) + var/list/contents = list() /datum/item_representation/New(obj/item/item_to_copy) - if(!item_to_copy) + if(!item_to_copy && !isobj(item_to_copy)) return item_type = item_to_copy.type if(item_to_copy.current_variant && item_to_copy.colorable_allowed & ICON_STATE_VARIANTS_ALLOWED) @@ -51,6 +53,8 @@ if(item.current_variant && item.colorable_allowed & ICON_STATE_VARIANTS_ALLOWED) item.current_variant = GLOB.loadout_variant_keys[variant] item.update_icon() + if(item.storage_datum) + instantiate_current_storage_datum(seller, item, user) return item /** @@ -78,14 +82,12 @@ * This is only able to represent /obj/item/storage */ /datum/item_representation/storage - /// The contents in the storage - var/list/contents = list() /datum/item_representation/storage/New(obj/item/item_to_copy) if(!item_to_copy) return - if(!isstorage(item_to_copy)) - CRASH("/datum/item_representation/storage created from an item that is not a storage") + if(!isobj(item_to_copy)) + CRASH("/datum/item_representation/storage called New([item_to_copy]), when [item_to_copy] is not an obj") ..() //Internal storage are not in vendors. They should always be available for the loadout vendors, because they are instantiated like any other object if(istype(item_to_copy, /obj/item/storage/internal)) @@ -99,18 +101,22 @@ item_representation_type = /datum/item_representation contents += new item_representation_type(thing_in_content) -/datum/item_representation/storage/instantiate_object(datum/loadout_seller/seller, master = null, mob/living/user) - . = ..() - if(!.) - return - //Some storage cannot handle custom contents - if(is_type_in_typecache(item_type, GLOB.bypass_storage_content_save)) +///Like instantiate_object(), but returns a /datum instead of a /item, master is REQUIRED and it must be at least an atom +/datum/item_representation/proc/instantiate_current_storage_datum(datum/loadout_seller/seller, atom/master = null, mob/living/user) + if(!master) + CRASH("instantiate_current_storage_datum called with null master") + item_type = master + if(!isatom(item_type)) + CRASH("[item_type] is not a /atom, it cannot have storage") + + if(is_type_in_typecache(item_type, GLOB.loadout_instantiate_default_contents)) //Some storage cannot handle custom contents return - var/obj/item/storage/storage = . + + var/datum/storage/current_storage_datum = item_type.storage_datum var/list/obj/item/starting_items = list() - for(var/obj/item/I AS in storage.contents) - starting_items[I.type] = starting_items[I.type] + get_item_stack_number(I) - storage.delete_contents() + for(var/obj/item/item_in_contents AS in current_storage_datum.parent.contents) + starting_items[item_in_contents.type] = starting_items[item_in_contents.type] + get_item_stack_number(item_in_contents) + current_storage_datum.delete_contents() for(var/datum/item_representation/item_representation AS in contents) if(!item_representation.bypass_vendor_check && starting_items[item_representation.item_type] > 0) var/amount_to_remove = get_item_stack_representation_amount(item_representation) @@ -123,8 +129,8 @@ var/obj/item/item_to_insert = item_representation.instantiate_object(seller, null, user) if(!item_to_insert) continue - if(storage.can_be_inserted(item_to_insert)) - storage.handle_item_insertion(item_to_insert) + if(current_storage_datum.can_be_inserted(item_to_insert, user)) + current_storage_datum.handle_item_insertion(item_to_insert) continue item_to_insert.forceMove(get_turf(user)) diff --git a/code/datums/loadout/item_representation/armor_representation.dm b/code/datums/loadout/item_representation/armor_representation.dm index 6a0440b01a951..2f49e4523bb92 100644 --- a/code/datums/loadout/item_representation/armor_representation.dm +++ b/code/datums/loadout/item_representation/armor_representation.dm @@ -181,8 +181,8 @@ ///Attach the instantiated item on an armor /datum/item_representation/armor_module/proc/install_on_armor(datum/loadout_seller/seller, obj/item/clothing/thing_to_install_on, mob/living/user) SHOULD_CALL_PARENT(TRUE) - //if(!item_type) - // return + if(!item_type) + return var/obj/item/armor_module/module_type = item_type if(!CHECK_BITFIELD(initial(module_type.attach_features_flags), ATTACH_REMOVABLE)) bypass_vendor_check = TRUE @@ -204,17 +204,15 @@ if(!ismodulararmorstoragemodule(item_to_copy)) CRASH("/datum/item_representation/armor_module created from an item that is not a jaeger storage module") ..() - var/obj/item/armor_module/storage/storage_module = item_to_copy - var/obj/item/storage/internal/modular/internal_storage = storage_module.storage - storage = new(internal_storage) + storage = new(item_to_copy) /datum/item_representation/armor_module/storage/instantiate_object(datum/loadout_seller/seller, master, mob/living/user) . = ..() if(!.) return var/obj/item/armor_module/storage/storage_module = . + if(!storage_module) + return if(!storage) return - qdel(storage_module.storage) //an empty storage item is generated when the module is initialised - storage_module.storage = storage.instantiate_object(seller, storage_module, user) - + storage_module = storage.instantiate_current_storage_datum(seller, storage_module, user) diff --git a/code/datums/marine_main_ship.dm b/code/datums/marine_main_ship.dm index f39e02acddf68..247b66b6f7249 100644 --- a/code/datums/marine_main_ship.dm +++ b/code/datums/marine_main_ship.dm @@ -35,19 +35,17 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new) for(var/obj/effect/soundplayer/alarmplayer AS in GLOB.ship_alarms) alarmplayer.deltalarm.stop(alarmplayer) for(var/obj/machinery/light/mainship/light AS in GLOB.mainship_lights) - light.base_state = "tube" + if(istype(light, /obj/machinery/light/mainship/small)) + light.base_icon_state = "bulb" + else + light.base_icon_state = "tube" var/area/A = get_area(light) if(!A.power_light || light.status != LIGHT_OK) //do not adjust unpowered or broken bulbs continue - light.light_color = COLOR_WHITE - light.brightness = 8 - light.light_range = 8 - if(istype(light, /obj/machinery/light/mainship/small)) - light.icon_state = "bulb_1" - light.base_state = "tube" - else - light.icon_state = "tube_1" + light.light_color = light.bulb_colour + light.light_range = light.brightness light.update_light() + light.update_appearance(UPDATE_ICON) else for(var/obj/effect/soundplayer/alarmplayer AS in GLOB.ship_alarms) if(level != SEC_LEVEL_DELTA) @@ -55,24 +53,22 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new) else alarmplayer.deltalarm.start(alarmplayer) for(var/obj/machinery/light/mainship/light AS in GLOB.mainship_lights) - light.base_state = "tube_red" + if(istype(light, /obj/machinery/light/mainship/small)) + light.base_icon_state = "bulb_red" + else + light.base_icon_state = "tube_red" var/area/A = get_area(light) if(!A.power_light || light.status != LIGHT_OK) //do not adjust unpowered or broken bulbs continue light.light_color = COLOR_SOMEWHAT_LIGHTER_RED - light.brightness = 3 light.light_range = 7.5 if(prob(75)) //randomize light range on most lights, patchy lighting gives a sense of danger var/rangelevel = pick(5.5,6.0,6.5,7.0) if(prob(15)) rangelevel -= pick(0.5,1.0,1.5,2.0) light.light_range = rangelevel - if(istype(light, /obj/machinery/light/mainship/small)) - light.icon_state = "bulb_red_1" - light.base_state = "bulb_red" - else - light.icon_state = "tube_red_1" light.update_light() + light.update_appearance(UPDATE_ICON) //Will not be announced if you try to set to the same level as it already is if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != security_level) diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 3fbbc3e31695a..100e3273a4554 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -169,7 +169,7 @@ shuttle_id = SHUTTLE_DISTRESS_UPP name = "Distress UPP" -/datum/map_template/shuttle/small_ert/ufo +/datum/map_template/shuttle/small_ert/ufo shuttle_id = SHUTTLE_DISTRESS_UFO name = "Small UFO" @@ -181,6 +181,10 @@ shuttle_id = SHUTTLE_SUPPLY name = SHUTTLE_SUPPLY +/datum/map_template/shuttle/supply/vehicle + shuttle_id = SHUTTLE_VEHICLE_SUPPLY + name = SHUTTLE_VEHICLE_SUPPLY + /datum/map_template/shuttle/tgs_canterbury shuttle_id = SHUTTLE_CANTERBURY name = "Canterbury" diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm new file mode 100644 index 0000000000000..864a158ff4556 --- /dev/null +++ b/code/datums/storage/storage.dm @@ -0,0 +1,1047 @@ +/*! + * Datumized Storage + * Eliminates the need for custom signals specifically for the storage component, and attaches a storage variable (storage_datum) to every atom. + */ + +///Helper proc to give something storage +/atom/proc/create_storage(storage_type = /datum/storage, list/canhold, list/canthold, list/storage_type_limits) + RETURN_TYPE(/datum/storage) + + if(storage_datum) + QDEL_NULL(storage_datum) + + storage_datum = new storage_type(src) + + if(canhold || canthold) + storage_datum.set_holdable(canhold, canthold, storage_type_limits) + + return storage_datum + +// The parent and real_location variables are both weakrefs, so they must be resolved before they can be used. +/datum/storage + /** + * A reference to the atom linked to this storage object + * If the parent goes, we go. Will never be null. + */ + VAR_FINAL/atom/parent + /** + * A reference to the atom where the items are actually stored. + * By default this is parent. Should generally never be null. + * Sometimes it's not the parent, that's what is called "dissassociated storage". + * + * Do NOT set this directly, use set_real_location. + */ + VAR_FINAL/atom/real_location + + /// Typecache of items that can be inserted into this storage. + /// By default, all item types can be inserted (assuming other conditions are met). + /// Do not set directly, use set_holdable + VAR_FINAL/list/obj/item/can_hold + /// Typecache of items that cannot be inserted into this storage. + /// By default, no item types are barred from insertion. + /// Do not set directly, use set_holdable + VAR_FINAL/list/obj/item/cant_hold + /// Typecache of items that can always be inserted into this storage, regardless of size. + VAR_FINAL/list/obj/item/storage_type_limits + + /** + * Associated list of types and their max count, formatted as + * storage_type_limits_max = list( + * /obj/A = 3, + * ) + * + * Any inserted objects will decrement the allowed count of every listed type which matches or is a parent of that object. + * With entries for both /obj/A and /obj/A/B, inserting a B requires non-zero allowed count remaining for, and reduces, both. + */ + VAR_FINAL/list/storage_type_limits_max + ///Max size of objects that this object can store (in effect only if canhold isn't set) + var/max_w_class = WEIGHT_CLASS_SMALL + ///The sum of the storage costs of all the items in this storage item. + var/max_storage_space = 14 + ///The number of storage slots in this container. + var/storage_slots = 7 + ///Defines how many versions of the sprites that gets progressively emptier as they get closer to "_0" in .dmi. + var/sprite_slots = null + + ///In slotless storage, stores areas where clicking will refer to the associated item + var/list/click_border_start = list() + ///In slotless storage, stores areas where clicking will refer to the associated item + var/list/click_border_end = list() + ///storage UI + var/atom/movable/screen/storage/boxes = null + ///storage UI + var/atom/movable/screen/storage/storage_start = null + ///storage UI + var/atom/movable/screen/storage/storage_continue = null + ///storage UI + var/atom/movable/screen/storage/storage_end = null + ///storage UI + var/atom/movable/screen/storage/stored_start = null + ///storage UI + var/atom/movable/screen/storage/stored_continue = null + ///storage UI + var/atom/movable/screen/storage/stored_end = null + ///storage UI + var/atom/movable/screen/close/closer = null + + ///whether our storage box on hud changes color when full. + var/show_storage_fullness = TRUE + ///Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. + var/use_to_pickup + ///Set this to make the storage item group contents of the same type and display them as a number. + var/display_contents_with_number + ///Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. + var/allow_quick_empty + ///Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. + var/allow_quick_gather + ///whether this object can change its drawing method + var/allow_drawing_method + ///FALSE = will open the inventory if you click on the storage container, TRUE = will draw from the inventory if you click on the storage container + var/draw_mode = FALSE + ///FALSE = pick one at a time, TRUE = pick all on tile + var/collection_mode = TRUE + ///BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard + var/foldable = null + ///sound played when used. null for no sound. + var/use_sound = "rustle" + ///Has it been opened before? + var/opened = FALSE + ///list of mobs currently seeing the storage's contents + var/list/content_watchers = list() + ///How long does it take to put items into or out of this, in ticks + var/access_delay = 0 + ///What item do you use to tactical refill this + var/list/obj/item/refill_types + ///What sound gets played when the item is tactical refilled + var/refill_sound = null + ///the item left behind when our parent is destroyed + var/trash_item = null + ///flags for special behaviours + var/storage_flags = NONE + + //---- Holster vars + ///the sound produced when the special item is drawn + var/draw_sound = null + ///the sound produced when the special item is sheathed + var/sheathe_sound = null + ///the snowflake item(s) that will update the sprite. + var/list/holsterable_allowed = list() + ///records the specific special item currently in the holster + var/obj/holstered_item = null + ///Image that get's underlayed under the sprite of the holster + var/image/holstered_item_underlay + + +/datum/storage/New(atom/parent) + . = ..() + if(!istype(parent)) + stack_trace("Storage datum ([type]) created without a [isnull(parent) ? "null parent" : "invalid parent ([parent.type])"]!") + qdel(src) + return + + set_parent(parent) + + boxes = new() + boxes.name = "storage" + boxes.master = src + boxes.icon_state = "block" + boxes.screen_loc = "7,7 to 10,8" + boxes.layer = HUD_LAYER + boxes.plane = HUD_PLANE + + storage_start = new /atom/movable/screen/storage() + storage_start.name = "storage" + storage_start.master = src + storage_start.icon_state = "storage_start" + storage_start.screen_loc = "7,7 to 10,8" + storage_start.layer = HUD_LAYER + storage_start.plane = HUD_PLANE + storage_continue = new /atom/movable/screen/storage() + storage_continue.name = "storage" + storage_continue.master = src + storage_continue.icon_state = "storage_continue" + storage_continue.screen_loc = "7,7 to 10,8" + storage_continue.layer = HUD_LAYER + storage_continue.plane = HUD_PLANE + storage_end = new /atom/movable/screen/storage() + storage_end.name = "storage" + storage_end.master = src + storage_end.icon_state = "storage_end" + storage_end.screen_loc = "7,7 to 10,8" + storage_end.layer = HUD_LAYER + storage_end.plane = HUD_PLANE + + stored_start = new /obj() //we just need these to hold the icon + stored_start.icon_state = "stored_start" + stored_start.layer = HUD_LAYER + stored_start.plane = HUD_PLANE + stored_continue = new /obj() + stored_continue.icon_state = "stored_continue" + stored_continue.layer = HUD_LAYER + stored_continue.plane = HUD_PLANE + stored_end = new /obj() + stored_end.icon_state = "stored_end" + stored_end.layer = HUD_LAYER + stored_end.plane = HUD_PLANE + + closer = new() + closer.master = src + +/datum/storage/Destroy(force = FALSE, ...) + for(var/atom/movable/item in parent.contents) + qdel(item) + for(var/mob/M in content_watchers) + hide_from(M) + if(boxes) + QDEL_NULL(boxes) + if(storage_start) + QDEL_NULL(storage_start) + if(storage_continue) + QDEL_NULL(storage_continue) + if(storage_end) + QDEL_NULL(storage_end) + if(stored_start) + QDEL_NULL(stored_start) + if(stored_continue) + QDEL_NULL(stored_continue) + if(stored_end) + QDEL_NULL(stored_end) + if(closer) + QDEL_NULL(closer) + if(holstered_item) + QDEL_NULL(holstered_item) + if(trash_item) + new trash_item(get_turf(parent)) + parent = null + return ..() + +/// Set the passed atom as the parent +/datum/storage/proc/set_parent(atom/new_parent) + PRIVATE_PROC(TRUE) + + ASSERT(isnull(parent)) + + parent = new_parent + + register_storage_signals(parent) //Registers all our relevant signals, separate proc because some subtypes have conflicting signals + +/// Registers signals to parent +/datum/storage/proc/register_storage_signals(atom/parent) + //----Clicking signals + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) //Left click + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) //Left click empty hand + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) //Item clicking on itself + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND_ALTERNATE, PROC_REF(on_attack_hand_alternate)) //Right click empty hand + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_alt_click)) //ALT + click + RegisterSignal(parent, COMSIG_CLICK_ALT_RIGHT, PROC_REF(on_alt_right_click)) //ALT + right click + RegisterSignal(parent, COMSIG_CLICK_CTRL, PROC_REF(on_ctrl_click)) //CTRL + Left click + RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, PROC_REF(on_attack_ghost)) //Ghosts can see inside your storages + RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, PROC_REF(on_mousedrop_onto)) //Click dragging + + //----Something is happening to our storage + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) //Getting EMP'd + RegisterSignal(parent, COMSIG_CONTENTS_EX_ACT, PROC_REF(on_contents_explode)) //Getting exploded + + RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, PROC_REF(handle_atom_del)) + RegisterSignal(parent, ATOM_MAX_STACK_MERGING, PROC_REF(max_stack_merging)) + RegisterSignal(parent, ATOM_RECALCULATE_STORAGE_SPACE, PROC_REF(recalculate_storage_space)) + RegisterSignals(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(update_verbs)) + RegisterSignal(parent, COMSIG_ITEM_QUICK_EQUIP, PROC_REF(on_quick_equip_request)) + +///Unregisters our signals from parent. Used when parent loses storage but is not destroyed +/datum/storage/proc/unregister_storage_signals(atom/parent) + UnregisterSignal(parent, list( + COMSIG_ATOM_ATTACKBY, + COMSIG_ATOM_ATTACK_HAND, + COMSIG_ITEM_ATTACK_SELF, + COMSIG_ATOM_ATTACK_HAND_ALTERNATE, + COMSIG_CLICK_ALT, + COMSIG_CLICK_ALT_RIGHT, + COMSIG_CLICK_CTRL, + COMSIG_ATOM_ATTACK_GHOST, + COMSIG_MOUSEDROP_ONTO, + + COMSIG_ATOM_EMP_ACT, + COMSIG_CONTENTS_EX_ACT, + + COMSIG_ATOM_CONTENTS_DEL, + ATOM_MAX_STACK_MERGING, + ATOM_RECALCULATE_STORAGE_SPACE, + COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_ITEM_QUICK_EQUIP, + )) + +/// Almost 100% of the time the lists passed into set_holdable are reused for each instance +/// Just fucking cache it 4head +/// Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS +/// If you find yourself needing this pattern, you're likely better off using static typecaches +/// I'm not because I do not trust implementers of the storage component to use them, BUT +/// IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES +/// ~Lemon +GLOBAL_LIST_EMPTY(cached_storage_typecaches) + +/datum/storage/proc/set_holdable(list/can_hold_list, list/cant_hold_list, list/storage_type_limits_list) + if(!isnull(can_hold_list) && !islist(can_hold_list)) + can_hold_list = list(can_hold_list) + if(!isnull(cant_hold_list) && !islist(cant_hold_list)) + cant_hold_list = list(cant_hold_list) + if(!isnull(storage_type_limits_list) && !islist(storage_type_limits_list)) + storage_type_limits_list = list(storage_type_limits_list) + + if(!isnull(can_hold_list) && !isnull(storage_type_limits_list)) //Making sure can_hold_list also includes the things that bypass our w_class + can_hold_list += storage_type_limits_list + + if(!isnull(can_hold_list)) + var/unique_key = can_hold_list.Join("-") + if(!GLOB.cached_storage_typecaches[unique_key]) + GLOB.cached_storage_typecaches[unique_key] = typecacheof(can_hold_list) + can_hold = GLOB.cached_storage_typecaches[unique_key] + + if(!isnull(cant_hold_list)) + var/unique_key = cant_hold_list.Join("-") + if(!GLOB.cached_storage_typecaches[unique_key]) + GLOB.cached_storage_typecaches[unique_key] = typecacheof(cant_hold_list) + cant_hold = GLOB.cached_storage_typecaches[unique_key] + + if(!isnull(storage_type_limits_list)) + var/unique_key = storage_type_limits_list.Join("-") + if(!GLOB.cached_storage_typecaches[unique_key]) + GLOB.cached_storage_typecaches[unique_key] = typecacheof(storage_type_limits_list) + storage_type_limits = GLOB.cached_storage_typecaches[unique_key] + +///This proc is called when you want to place an attacking_item into the storage +/datum/storage/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user, params) + SIGNAL_HANDLER + if(length(refill_types)) + for(var/typepath in refill_types) + if(istype(attacking_item, typepath)) + INVOKE_ASYNC(src, PROC_REF(do_refill), attacking_item, user) + return + if(!can_be_inserted(attacking_item, user)) + open(user) + return FALSE + INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), attacking_item, FALSE, user) + return COMPONENT_NO_AFTERATTACK + +///Called when you click on parent with an empty hand +/datum/storage/proc/on_attack_hand(datum/source, mob/living/user) + SIGNAL_HANDLER + if(parent.loc == user || parent.loc.loc == user) + var/obj/item/item_to_attack = source + if(item_to_attack.item_flags & IN_STORAGE) + return //We don't want to open nested storage on left click, on_alt_click() should be the standard "Always open" + if(holstered_item in parent.contents) + item_to_attack = holstered_item + INVOKE_ASYNC(item_to_attack, TYPE_PROC_REF(/atom/movable, attack_hand), user) + return COMPONENT_NO_ATTACK_HAND + if(draw_mode && ishuman(user) && length(parent.contents)) + item_to_attack = parent.contents[length(parent.contents)] + INVOKE_ASYNC(item_to_attack, TYPE_PROC_REF(/atom/movable, attack_hand), user) + return COMPONENT_NO_ATTACK_HAND + else if(open(user)) + return COMPONENT_NO_ATTACK_HAND + for(var/mob/M AS in content_watchers) + close(M) + return + +///Called when you RIGHT click on parent with an empty hand +///Attempts to draw an object from our storage +/datum/storage/proc/on_attack_hand_alternate(datum/source, mob/living/user) + SIGNAL_HANDLER + if(parent.Adjacent(user)) + INVOKE_ASYNC(src, PROC_REF(attempt_draw_object), user) + +///Called when you alt + left click on parent +///Attempts to draw an object from our storage +/datum/storage/proc/on_alt_click(datum/source, mob/user) + SIGNAL_HANDLER + if(parent.Adjacent(user)) + INVOKE_ASYNC(src, PROC_REF(attempt_draw_object), user) + +///Called when you alt + right click on parent +///Opens the inventory of our storage +/datum/storage/proc/on_alt_right_click(datum/source, mob/user) + SIGNAL_HANDLER + if(parent.Adjacent(user)) + open(user) + +///Called when you ctrl + left click on parent +///Attempts to draw an object from out storage, but it draw from the left side instead of the right +/datum/storage/proc/on_ctrl_click(datum/source, mob/user) + SIGNAL_HANDLER + if(parent.Adjacent(user)) + INVOKE_ASYNC(src, PROC_REF(attempt_draw_object), user, TRUE) + +/datum/storage/proc/on_attack_ghost(datum/source, mob/user) + SIGNAL_HANDLER + open(user) + +///Signal handler for when you click drag parent to something (usually ourselves or an inventory slot) +/datum/storage/proc/on_mousedrop_onto(datum/source, obj/over_object as obj, mob/user) + SIGNAL_HANDLER + if(!ishuman(user)) + return COMPONENT_NO_MOUSEDROP + + if(user.lying_angle) + return COMPONENT_NO_MOUSEDROP + + if(over_object == user && parent.Adjacent(user)) // this must come before the screen objects only block + open(user) + return COMPONENT_NO_MOUSEDROP + + if(!istype(over_object, /atom/movable/screen)) + return //Don't cancel mousedrop + + if(HAS_TRAIT(src, TRAIT_NODROP)) + return COMPONENT_NO_MOUSEDROP + + //Makes sure that the storage is equipped, so that we can't drag it into our hand from miles away. + if(parent.loc != user && parent.loc.loc != user) //loc.loc handles edge case of storage attached to an item attached to another item (modules/boots) + return COMPONENT_NO_MOUSEDROP + + if(!user.restrained() && !user.stat) + switch(over_object.name) + if("r_hand") + INVOKE_ASYNC(src, PROC_REF(put_item_in_r_hand), source, user) + return COMPONENT_NO_MOUSEDROP + if("l_hand") + INVOKE_ASYNC(src, PROC_REF(put_item_in_l_hand), source, user) + return COMPONENT_NO_MOUSEDROP + +///Removes item_to_put_in_hand from the storage it's currently in, and then places it into our right hand +/datum/storage/proc/put_item_in_r_hand(obj/item/item_to_put_in_hand, mob/user) + if(item_to_put_in_hand.item_flags & IN_STORAGE) + if(!item_to_put_in_hand.loc.storage_datum.remove_from_storage(item_to_put_in_hand, user, user)) + return + user.temporarilyRemoveItemFromInventory(item_to_put_in_hand) + if(!user.put_in_r_hand(item_to_put_in_hand)) + user.dropItemToGround(item_to_put_in_hand) + +///Removes item_to_put_in_hand from the storage it's currently in, and then places it into our left hand +/datum/storage/proc/put_item_in_l_hand(obj/item/item_to_put_in_hand, mob/user) + if(item_to_put_in_hand.item_flags & IN_STORAGE) + if(!item_to_put_in_hand.loc.storage_datum.remove_from_storage(item_to_put_in_hand, user, user)) + return + user.temporarilyRemoveItemFromInventory(item_to_put_in_hand) + if(!user.put_in_l_hand(item_to_put_in_hand)) + user.dropItemToGround(item_to_put_in_hand) + +/datum/storage/verb/toggle_gathering_mode() + set name = "Switch Gathering Method" + set category = "Object" + + collection_mode = !collection_mode + if(collection_mode) + to_chat(usr, "[parent.name] now picks up all items in a tile at once.") + else + to_chat(usr, "[parent.name] now picks up one item at a time.") + +/datum/storage/verb/toggle_draw_mode() + set name = "Switch Storage Drawing Method" + set category = "Object" + + draw_mode = !draw_mode + if(draw_mode) + to_chat(usr, "Clicking [parent.name] with an empty hand now puts the last stored item in your hand.") + else + to_chat(usr, "Clicking [parent.name] with an empty hand now opens the pouch storage menu.") + +/** + * Gets the inventory of a storage + * if recursive = TRUE, this will also get the inventories of things within the inventory + */ +/datum/storage/proc/return_inv(recursive = TRUE) + var/list/inventory = list() + inventory += parent.contents + if(recursive) + for(var/item in parent.contents) + var/atom/atom = item + atom.storage_datum?.return_inv(recursive = TRUE) + + return inventory + +///Shows our inventory to user, we become s_active and user is added to our content_watchers +/datum/storage/proc/show_to(mob/user) + if(user.s_active != src) + for(var/obj/item/item in parent) + if(item.on_found(user)) + return + user.client.screen -= boxes + user.client.screen -= storage_start + user.client.screen -= storage_continue + user.client.screen -= storage_end + user.client.screen -= closer + user.client.screen -= parent.contents + user.client.screen += closer + user.client.screen += parent.contents + + if(storage_slots) + user.client.screen += boxes + else + user.client.screen += storage_start + user.client.screen += storage_continue + user.client.screen += storage_end + + user.s_active = src + content_watchers |= user + +///Hides our inventory from user, sets s_active to null and removes user from content_watchers +/datum/storage/proc/hide_from(mob/user) + if(!user.client) + return + user.client.screen -= src.boxes + user.client.screen -= storage_start + user.client.screen -= storage_continue + user.client.screen -= storage_end + user.client.screen -= src.closer + user.client.screen -= parent.contents + if(user.s_active == src) + user.s_active = null + content_watchers -= user + +///Returns a list of lookers, basically any mob that can see our contents +/datum/storage/proc/can_see_content() + var/list/lookers = list() + for(var/i in content_watchers) + var/mob/content_watcher_mob = i + if(content_watcher_mob.s_active == src && content_watcher_mob.client) + lookers |= content_watcher_mob + else + content_watchers -= content_watcher_mob + return lookers + +///Opens our storage, closes the storage if we are s_active +/datum/storage/proc/open(mob/user) + if(!opened) + orient2hud() + opened = TRUE + if(use_sound && user.stat != DEAD) + playsound(parent.loc, use_sound, 25, 1, 3) + + if(user.s_active == src) //If active storage is already open, close it + close(user) + return TRUE + if(user.s_active) //We can only have 1 active storage at once + user.s_active.close(user) + show_to(user) + return TRUE + +///Closes our storage +/datum/storage/proc/close(mob/user) + hide_from(user) + +/** + * This proc draws out the inventory and places the items on it. + * tx and ty are the upper left tile and + * mx, my are the bottm right. + * The numbers are calculated from the bottom-left The bottom-left slot being 1,1. + */ +/datum/storage/proc/orient_objs(tx, ty, mx, my) + var/cx = tx + var/cy = ty + boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" + for(var/obj/object in parent.contents) + object.screen_loc = "[cx],[cy]" + object.layer = ABOVE_HUD_LAYER + object.plane = ABOVE_HUD_PLANE + cx++ + if(cx > mx) + cx = tx + cy-- + closer.screen_loc = "[mx+1],[my]" + if(show_storage_fullness) + boxes.update_fullness(parent) + +///This proc draws out the inventory and places the items on it. It uses the standard position. +/datum/storage/proc/slot_orient_objs(rows, cols, list/obj/item/display_contents) + var/cx = 4 + var/cy = 2+rows + boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" + + if(display_contents_with_number) + for(var/datum/numbered_display/ND in display_contents) + ND.sample_object.mouse_opacity = 2 + ND.sample_object.screen_loc = "[cx]:16,[cy]:16" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + else + for(var/obj/object in parent.contents) + object.mouse_opacity = 2 //So storage items that start with contents get the opacity trick. + object.screen_loc = "[cx]:16,[cy]:16" + object.maptext = "" + object.layer = ABOVE_HUD_LAYER + object.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + closer.screen_loc = "[4+cols+1]:16,2:16" + if(show_storage_fullness) + boxes.update_fullness(parent) + +///Generates a UI for slotless storage based on the objects inside of it +/datum/storage/proc/space_orient_objs(list/obj/item/display_contents) + // should be equal to default backpack capacity + var/baseline_max_storage_space = 21 + // length of sprite for start and end of the box representing total storage space + var/storage_cap_width = 2 + // length of sprite for start and end of the box representing the stored item + var/stored_cap_width = 4 + // length of sprite for the box representing total storage space + var/storage_width = min(round(258 * max_storage_space/baseline_max_storage_space, 1), 284) + + click_border_start.Cut() + click_border_end.Cut() + storage_start.overlays.Cut() + + if(!opened) //initialize background box + var/matrix/M = matrix() + M.Scale((storage_width-storage_cap_width*2+3)/32,1) + storage_continue.transform = M + storage_start.screen_loc = "4:16,2:16" + storage_continue.screen_loc = "4:[round(storage_cap_width+(storage_width-storage_cap_width*2)/2+2)],2:16" + storage_end.screen_loc = "4:[19+storage_width-storage_cap_width],2:16" + + var/startpoint = 0 + var/endpoint = 1 + + for(var/obj/item/object in parent.contents) + startpoint = endpoint + 1 + endpoint += storage_width * object.w_class / max_storage_space + + click_border_start.Add(startpoint) + click_border_end.Add(endpoint) + + var/matrix/M_start = matrix() + var/matrix/M_continue = matrix() + var/matrix/M_end = matrix() + M_start.Translate(startpoint,0) + M_continue.Scale((endpoint-startpoint-stored_cap_width*2)/32,1) + M_continue.Translate(startpoint+stored_cap_width+(endpoint-startpoint-stored_cap_width*2)/2 - 16,0) + M_end.Translate(endpoint-stored_cap_width,0) + stored_start.transform = M_start + stored_continue.transform = M_continue + stored_end.transform = M_end + storage_start.overlays += src.stored_start + storage_start.overlays += src.stored_continue + storage_start.overlays += src.stored_end + + object.screen_loc = "4:[round((startpoint+endpoint)/2)+2],2:16" + object.maptext = "" + object.layer = ABOVE_HUD_LAYER + object.plane = ABOVE_HUD_PLANE + + closer.screen_loc = "4:[storage_width+19],2:16" + +/datum/numbered_display + ///Object to compare to the item inside of a slotless storage + var/obj/item/sample_object + ///Used to display a number on the object inside of a storage + var/number + +/datum/numbered_display/New(obj/item/sample) + if(!istype(sample)) + qdel(src) + sample_object = sample + number = 1 + +/datum/numbered_display/Destroy() + sample_object = null + return ..() + +///This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. +/datum/storage/proc/orient2hud() + var/adjusted_contents = length(parent.contents) + var/list/datum/numbered_display/numbered_contents //Numbered contents display + + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/item in parent.contents) + var/found = FALSE + for(var/datum/numbered_display/numbered_display_checked in numbered_contents) + if(numbered_display_checked.sample_object.type == item.type) + numbered_display_checked.number++ + found = TRUE + break + if(!found) + adjusted_contents++ + numbered_contents.Add( new/datum/numbered_display(item) ) + + if(storage_slots == null) + space_orient_objs(numbered_contents) + return + + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if(adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + slot_orient_objs(row_num, col_count, numbered_contents) + +///This proc return 1 if the item can be picked up and 0 if it can't. Set the warning to stop it from printing messages +/datum/storage/proc/can_be_inserted(obj/item/item_to_insert, mob/user, warning = TRUE) + if(!istype(item_to_insert) || HAS_TRAIT(item_to_insert, TRAIT_NODROP)) + return //Not an item + + if(parent.loc == item_to_insert) + return FALSE //Means the item is already in the storage item + if(storage_slots != null && length(parent.contents) >= storage_slots) + if(warning) + to_chat(user, span_notice("[parent.name] is full, make some space.")) + return FALSE //Storage item is full + + if(length(can_hold) && !is_type_in_typecache(item_to_insert, typecacheof(can_hold))) + if(warning) + to_chat(user, span_notice("[parent.name] cannot hold [item_to_insert].")) + return FALSE + + if(is_type_in_typecache(item_to_insert, typecacheof(cant_hold))) //Check for specific items which this container can't hold. + if(warning) + to_chat(user, span_notice("[parent.name] cannot hold [item_to_insert].")) + return FALSE + + if(!is_type_in_typecache(item_to_insert, typecacheof(storage_type_limits)) && item_to_insert.w_class > max_w_class) + if(warning) + to_chat(user, span_notice("[item_to_insert] is too long for this [parent.name].")) + return FALSE + + var/sum_storage_cost = item_to_insert.w_class + for(var/obj/item/item in parent.contents) + sum_storage_cost += item.w_class + + if(sum_storage_cost > max_storage_space) + if(warning) + to_chat(user, span_notice("[parent.name] is full, make some space.")) + return FALSE + + if(isitem(parent)) + var/obj/item/parent_storage = parent + if(item_to_insert.w_class >= parent_storage.w_class && istype(item_to_insert, /obj/item/storage) && !is_type_in_typecache(item_to_insert.type, typecacheof(storage_type_limits))) + if(!istype(src, /obj/item/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. + if(warning) + to_chat(user, span_notice("[parent.name] cannot hold [item_to_insert] as it's a storage item of the same size.")) + return FALSE //To prevent the stacking of same sized storage items. + + for(var/limited_type in storage_type_limits_max) + if(!istype(item_to_insert, limited_type)) + continue + if(storage_type_limits_max[limited_type] == 0) + if(warning) + to_chat(user, span_warning("[parent.name] can't fit any more of those.") ) + return FALSE + + if(istype(item_to_insert, /obj/item/tool/hand_labeler)) + var/obj/item/tool/hand_labeler/L = item_to_insert + if(L.on) + return FALSE + + return TRUE + +/** + * This proc handles the delay associated with a storage object. + * If there is no delay, or the delay is negative, it simply returns TRUE. + * Should return true if the access delay is completed successfully. + */ +/datum/storage/proc/handle_access_delay(obj/item/accessed, mob/user, taking_out = TRUE, alert_user = TRUE) + if(!access_delay || !should_access_delay(accessed, user, taking_out)) + return TRUE + + if(LAZYLEN(user.do_actions)) + to_chat(user, span_warning("You are busy doing something else!")) + return FALSE + + if(!alert_user) + return do_after(user, access_delay, IGNORE_USER_LOC_CHANGE, parent) + + to_chat(user, "You begin to [taking_out ? "take" : "put"] [accessed] [taking_out ? "out of" : "into"] [parent.name]") + if(!do_after(user, access_delay, IGNORE_USER_LOC_CHANGE, parent)) + to_chat(user, span_warning("You fumble [accessed]!")) + return FALSE + return TRUE + +/** + * This proc checks to see if we should actually delay access in this scenario + * This proc should return TRUE or FALSE + */ +/datum/storage/proc/should_access_delay(obj/item/accessed, mob/user, taking_out) + return FALSE + +/** + * This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. + * That's done by can_be_inserted() + * The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, + * such as when picking up all the items on a tile with one click. + * user can be null, it refers to the potential mob doing the insertion. + */ +/datum/storage/proc/handle_item_insertion(obj/item/item, prevent_warning = 0, mob/user) + if(!istype(item)) + return FALSE + if(!handle_access_delay(item, user, taking_out=FALSE)) + item.forceMove(item.drop_location()) + return FALSE + if(user && item.loc == user) + if(!user.transferItemToLoc(item, parent)) + return FALSE + else + item.forceMove(parent) + item.on_enter_storage(parent) + if(length(holsterable_allowed)) + for(var/holsterable_item in holsterable_allowed) //If our item is our snowflake item, it gets set as holstered_item + if(!istype(item, holsterable_item)) + continue + holstered_item = item + if(user) + if(user.s_active != src) + user.client?.screen -= item + if(!prevent_warning) + insertion_message(item, user) + orient2hud() + for(var/mob/M in can_see_content()) + show_to(M) + if(storage_slots) + item.mouse_opacity = 2 //not having to click the item's tiny sprite to take it out of the storage. + parent.update_icon() + for(var/limited_type in storage_type_limits_max) + if(istype(item, limited_type)) + storage_type_limits_max[limited_type] -= 1 + return TRUE + +///Output a message when an item is inserted into a storage object +/datum/storage/proc/insertion_message(obj/item/item, mob/user) + var/visidist = item.w_class >= WEIGHT_CLASS_NORMAL ? 3 : 1 + user.visible_message(span_notice("[user] puts \a [item] into \the [parent.name]."),\ + span_notice("You put \the [item] into \the [parent.name]."),\ + null, visidist) + +///Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target +/datum/storage/proc/remove_from_storage(obj/item/item, atom/new_location, mob/user) + if(!istype(item)) + return FALSE + + if(!handle_access_delay(item, user)) + return FALSE + + for(var/mob/M AS in can_see_content()) + if(!M.client) + continue + M.client.screen -= item + + if(new_location) + if(ismob(new_location)) + item.layer = ABOVE_HUD_LAYER + item.plane = ABOVE_HUD_PLANE + item.pickup(new_location) + else + item.layer = initial(item.layer) + item.plane = initial(item.plane) + item.forceMove(new_location) + else + item.moveToNullspace() + + orient2hud() + + for(var/i in can_see_content()) + var/mob/M = i + show_to(M) + + if(!QDELETED(item)) + item.on_exit_storage(src) + item.mouse_opacity = initial(item.mouse_opacity) + + for(var/limited_type in storage_type_limits_max) + if(istype(item, limited_type)) + storage_type_limits_max[limited_type] += 1 + + parent.update_icon() + + return TRUE + +///Refills the storage from the refill_types item +/datum/storage/proc/do_refill(obj/item/storage/refiller, mob/user) + if(!length(refiller.contents)) + user.balloon_alert(user, "[refiller] is empty.") + return + + if(!can_be_inserted(refiller.contents[1], user)) + user.balloon_alert(user, "[parent.name] is full.") + return + + user.balloon_alert(user, "Refilling.") + + if(!do_after(user, 1.5 SECONDS, NONE, user, BUSY_ICON_GENERIC)) + return + + playsound(user.loc, refill_sound, 15, 1, 6) + for(var/obj/item/IM in refiller) + if(!can_be_inserted(refiller.contents[1], user)) + return + + refiller.storage_datum.remove_from_storage(IM) + handle_item_insertion(IM, TRUE, user) + +///Dumps out the contents of our inventory onto our turf +/datum/storage/proc/quick_empty(datum/source, mob/user) + if((!ishuman(user) && parent.loc != user) || user.restrained()) + return + + var/turf/T = get_turf(src) + hide_from(user) + for(var/obj/item/item in parent.contents) + remove_from_storage(item, T, user) + +///Delete everything that's inside the storage +/datum/storage/proc/delete_contents() + for(var/obj/item/item in parent.contents) + if(item.item_flags & IN_STORAGE) + item.on_exit_storage(src) + qdel(item) + +///Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area). Returns -1 if the atom was not found on container. +/datum/storage/proc/storage_depth(atom/container) + var/depth = 0 + var/obj/item/current_item = src + + while(current_item && !(current_item in container.contents)) + if(isarea(current_item)) + return -1 + if(current_item.item_flags & IN_STORAGE) + depth++ + current_item = current_item.loc + + if(!current_item) + return -1 //inside something with a null loc. + + return depth + +///Like storage depth, but returns the depth to the nearest turf. Returns -1 if no top level turf (a loc was null somewhere, or a non-turf atom's loc was an area somehow). +/datum/storage/proc/storage_depth_turf() + var/depth = 0 + var/obj/item/current_item = src + + while(current_item && !isturf(current_item)) + if(isarea(current_item)) + return -1 + if(current_item.item_flags & IN_STORAGE) + depth++ + current_item = current_item.loc + + if(!current_item) + return -1 //inside something with a null loc. + + return depth + +///Equips an item from our storage, returns signal COMSIG_QUICK_EQUIP_HANDLED to prevent standard quick equip behaviour +/datum/storage/proc/on_quick_equip_request(datum/source, mob/user) + SIGNAL_HANDLER + if(!length(parent.contents)) //we don't want to equip the storage item itself + return COMSIG_QUICK_EQUIP_BLOCKED + INVOKE_ASYNC(src, PROC_REF(attempt_draw_object), user) + return COMSIG_QUICK_EQUIP_HANDLED + +///Called whenever parent is hit by an EMP, effectively EMPs everything inside your storage +/datum/storage/proc/on_emp(datum/source, severity) + SIGNAL_HANDLER + for(var/obj/stored_object in parent.contents) + stored_object.emp_act(severity) + +///BubbleWrap - Called when the parent clicks on itself. Used mostly to fold empty boxes +/datum/storage/proc/on_attack_self(datum/source, mob/user) + SIGNAL_HANDLER + if(allow_quick_empty) + INVOKE_ASYNC(src, PROC_REF(quick_empty), user) + return + + if(!foldable) //Gotta be foldable to be folded obviously + return + + if(length(parent.contents)) //Can't fold, box not empty + return + + // Close any open UI windows first + for(var/mob/watcher_mob AS in content_watchers) + close(watcher_mob) + + // Now make the cardboard + to_chat(user, span_notice("You break down the [parent].")) + new foldable(get_turf(parent)) + qdel(parent) +//BubbleWrap END + +///signal sent from /atom/proc/handle_atom_del(atom/A) +/datum/storage/proc/handle_atom_del(datum/source, atom/movable/movable_atom) + SIGNAL_HANDLER + if(isitem(movable_atom)) + INVOKE_ASYNC(src, PROC_REF(remove_from_storage), movable_atom, movable_atom.loc, usr) + +///signal sent from /atom/proc/max_stack_merging() +/datum/storage/proc/max_stack_merging(datum/source, obj/item/stack/stacks) + if(is_type_in_typecache(stacks, typecacheof(storage_type_limits))) + return FALSE //No need for limits if we can bypass it. + var/weight_diff = initial(stacks.w_class) - max_w_class + if(weight_diff <= 0) + return FALSE //Nor if the limit is not higher than what we have. + var/max_amt = round((stacks.max_amount / STACK_WEIGHT_STEPS) * (STACK_WEIGHT_STEPS - weight_diff)) //How much we can fill per weight step times the valid steps. + if(max_amt <= 0 || max_amt > stacks.max_amount) + stack_trace("[parent.name] tried to max_stack_merging([stacks]) with [max_w_class] max_w_class and [weight_diff] weight_diff, resulting in [max_amt] max_amt.") + return max_amt + +///Called from signal in order to update the color of our storage, it's "fullness" basically +/datum/storage/proc/recalculate_storage_space(datum/source) + SIGNAL_HANDLER + var/list/lookers = can_see_content() + if(!length(lookers)) + return + orient2hud() + for(var/X AS in lookers) + var/mob/looker_mob = X //There is no need to typecast here, really, but for clarity. + show_to(looker_mob) + +///handles explosions on parent exploding the things in storage +/datum/storage/proc/on_contents_explode(datum/source, severity) + SIGNAL_HANDLER + for(var/stored_items AS in parent.contents) + var/atom/atom = stored_items + atom.ex_act(severity) + +///Updates our verbs if we are equipped +/datum/storage/proc/update_verbs(datum/source, mob/user, slot) + SIGNAL_HANDLER + var/obj/item/parent_item = parent + if(allow_quick_gather) + if(parent_item.item_flags & IN_INVENTORY) + parent.verbs += /datum/storage/verb/toggle_gathering_mode + else + parent.verbs -= /datum/storage/verb/toggle_gathering_mode + + if(allow_drawing_method) + if(parent_item.item_flags & IN_INVENTORY) + parent.verbs += /datum/storage/verb/toggle_draw_mode + else + parent.verbs -= /datum/storage/verb/toggle_draw_mode + +/** + * Attempts to get the first possible object from this container + * + * Arguments: + * * mob/living/user - The mob attempting to draw from this container + * * start_from_left - If true we draw the leftmost object instead of the rightmost. FALSE by default. + */ +/datum/storage/proc/attempt_draw_object(mob/living/user, start_from_left = FALSE) + if(!ishuman(user) || user.incapacitated()) + return + if(!length(parent.contents)) + return user.balloon_alert(user, "Empty") + if(user.get_active_held_item()) + return //User is already holding something. + if(holsterable_allowed && holstered_item) //If we have a holstered item in parent contents + if(holstered_item in parent.contents) + holstered_item.attack_hand(user) + return + var/obj/item/drawn_item = start_from_left ? parent.contents[1] : parent.contents[length(parent.contents)] + drawn_item.attack_hand(user) diff --git a/code/datums/storage/subtypes/backpack.dm b/code/datums/storage/subtypes/backpack.dm new file mode 100644 index 0000000000000..a186cd4d18ca2 --- /dev/null +++ b/code/datums/storage/subtypes/backpack.dm @@ -0,0 +1,76 @@ +// See code\game\objects\items\storage\backpack.dm + +/datum/storage/backpack + max_w_class = WEIGHT_CLASS_NORMAL + storage_slots = null + max_storage_space = 24 + access_delay = 1.5 SECONDS + +/datum/storage/backpack/should_access_delay(obj/item/item, mob/user, taking_out) + if(!taking_out) // Always allow items to be tossed in instantly + return FALSE + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + if(human_user.back == parent) + return TRUE + return FALSE + +/datum/storage/backpack/holding + max_w_class = WEIGHT_CLASS_BULKY + max_storage_space = 28 + +/datum/storage/backpack/santabag + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 400 // can store a ton of shit! + +/datum/storage/backpack/satchel //Smaller, but no delay + max_storage_space = 15 + access_delay = 0 + +/datum/storage/backpack/tech/New(atom/parent) + . = ..() + set_holdable(storage_type_limits_list = list( + /obj/item/weapon/gun/sentry/big_sentry, + /obj/item/weapon/gun/sentry/mini, + /obj/item/weapon/gun/hsg_102, + /obj/item/ammo_magazine/hsg_102, + /obj/item/ammo_magazine/sentry, + /obj/item/ammo_magazine/minisentry, + /obj/item/mortal_shell, + /obj/item/mortar_kit, + /obj/item/stack/razorwire, + /obj/item/stack/sandbags, + )) + +/datum/storage/backpack/satchel/tech/New(atom/parent) + . = ..() + set_holdable(storage_type_limits_list = list( + /obj/item/weapon/gun/sentry/mini, + /obj/item/ammo_magazine/hsg_102, + /obj/item/ammo_magazine/sentry, + /obj/item/ammo_magazine/minisentry, + /obj/item/mortal_shell, + /obj/item/stack/razorwire, + /obj/item/stack/sandbags, + )) + +/datum/storage/backpack/no_delay //Backpack sized with no draw delay + access_delay = 0 + +/datum/storage/backpack/commando + max_storage_space = 40 + access_delay = 0 + +/datum/storage/backpack/captain + max_storage_space = 30 + +/datum/storage/backpack/dispenser + max_storage_space = 48 + +/datum/storage/backpack/dispenser/open(mob/user) + var/obj/item/dispenser = parent + if(CHECK_BITFIELD(dispenser.item_flags, IS_DEPLOYED)) + return ..() + +/datum/storage/backpack/dispenser/attempt_draw_object(mob/living/user) + to_chat(user, span_notice("You can't grab anything out of [parent] while it's not deployed.")) diff --git a/code/datums/storage/subtypes/bag.dm b/code/datums/storage/subtypes/bag.dm new file mode 100644 index 0000000000000..57dccfcd31420 --- /dev/null +++ b/code/datums/storage/subtypes/bag.dm @@ -0,0 +1,170 @@ +/datum/storage/bag + allow_quick_gather = TRUE + allow_quick_empty = TRUE + display_contents_with_number = 0 // UNStABLE AS FuCK, turn on when it stops crashing clients + use_to_pickup = TRUE + +/datum/storage/bag/trash + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 21 + +/datum/storage/bag/trash/New(atom/parent) + . = ..() + set_holdable(cant_hold_list = list(/obj/item/disk/nuclear)) + +/datum/storage/bag/plasticbag + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 21 + +/datum/storage/bag/plasticbag/New(atom/parent) + . = ..() + set_holdable(cant_hold_list = list(/obj/item/disk/nuclear)) + +/datum/storage/bag/ore + storage_slots = 50 + max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/bag/ore/New(atom/parent) + . = ..() + set_holdable(list(/obj/item/ore)) + +/datum/storage/bag/plants + storage_slots = 50; //the number of plant pieces it can carry. + max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/bag/plants/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/reagent_containers/food/snacks/grown, + /obj/item/seeds, + /obj/item/grown, + )) + +/datum/storage/bag/cash + storage_slots = 50; //the number of cash pieces it can carry. + max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/bag/cash/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/coin, + /obj/item/spacecash, + )) + +/datum/storage/bag/sheetsnatcher + allow_quick_empty = TRUE + +/datum/storage/bag/sheetsnatcher/can_be_inserted(obj/item/item_to_insert, mob/user, warning = TRUE) + var/obj/item/storage/bag/sheetsnatcher/sheetsnatcher = parent + if(!istype(item_to_insert, /obj/item/stack/sheet) || istype(item_to_insert, /obj/item/stack/sheet/mineral/sandstone) || istype(item_to_insert, /obj/item/stack/sheet/wood)) + if(!warning) + to_chat(user, "The snatcher does not accept [item_to_insert].") + return FALSE //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu + var/current = 0 + for(var/obj/item/stack/sheet/S in parent.contents) + current += S.amount + if(sheetsnatcher.capacity == current)//If it's full, you're done + if(!warning) + to_chat(user, span_warning("The snatcher is full.")) + return FALSE + return TRUE + +/datum/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/item, prevent_warning = 0, mob/user) + var/obj/item/storage/bag/sheetsnatcher/sheetsnatcher = parent + var/obj/item/stack/sheet/S = item + if(!istype(S)) + return FALSE + + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/sheet/S2 in sheetsnatcher.contents) + current += S2.amount + if(sheetsnatcher.capacity < current + S.amount)//If the stack will fill it up + amount = sheetsnatcher.capacity - current + else + amount = S.amount + + for(var/obj/item/stack/sheet/sheet in sheetsnatcher.contents) + if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects + sheet.amount += amount // they should only be removed through procs in this file, which split them up. + S.amount -= amount + inserted = 1 + break + + if(!inserted || !S.amount) + if(user && item.loc == user) + user.temporarilyRemoveItemFromInventory(S) + if(!S.amount) + qdel(S) + else + S.forceMove(src) + + orient2hud() + for(var/mob/M in can_see_content()) + show_to(M) + + sheetsnatcher.update_icon() + return TRUE + + +/** + * Sets up numbered display to show the stack size of each stored mineral + * NOTE: numbered display is turned off currently because it's broken + */ +/datum/storage/bag/sheetsnatcher/orient2hud() + var/obj/item/storage/bag/sheetsnatcher/sheetsnatcher = parent + var/adjusted_contents = length(sheetsnatcher.contents) + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/stack/sheet/I in sheetsnatcher.contents) + adjusted_contents++ + var/datum/numbered_display/D = new/datum/numbered_display(I) + D.number = I.amount + numbered_contents.Add( D ) + + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + slot_orient_objs(row_num, col_count, numbered_contents) + +/datum/storage/bag/sheetsnatcher/quick_empty(datum/source, mob/user) // Modified quick_empty verb drops appropriate sized stacks + var/obj/item/storage/bag/sheetsnatcher/sheetsnatcher = parent + var/location = get_turf(src) + for(var/obj/item/stack/sheet/S in sheetsnatcher.contents) + while(S.amount) + var/obj/item/stack/sheet/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + qdel(S) // todo: there's probably something missing here + orient2hud(user) + if(user.s_active) + show_to(user) + sheetsnatcher.update_icon() + +/datum/storage/bag/sheetsnatcher/remove_from_storage(obj/item/item, atom/new_location, mob/user) // Instead of removing + var/obj/item/stack/sheet/S = item + if(!istype(S)) + return FALSE + + //I would prefer to drop a new stack, but the item/attack_hand(mob/living/user) + // that calls this can't recieve a different object than you clicked on. + //Therefore, make a new stack internally that has the remainder. + // -Sayu + + if(S.amount > S.max_amount) + var/obj/item/stack/sheet/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount + + return ..(S,new_location,user) diff --git a/code/datums/storage/subtypes/belt.dm b/code/datums/storage/subtypes/belt.dm new file mode 100644 index 0000000000000..ba960363d3fdc --- /dev/null +++ b/code/datums/storage/subtypes/belt.dm @@ -0,0 +1,238 @@ +/datum/storage/belt + allow_drawing_method = TRUE + +/datum/storage/belt/champion + storage_slots = 1 + +/datum/storage/belt/champion/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/clothing/mask/luchador, + )) + +/datum/storage/belt/utility + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/belt/utility/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/tool/screwdriver, + /obj/item/tool/wirecutters, + /obj/item/tool/weldingtool, + /obj/item/tool/wrench, + /obj/item/tool/crowbar, + /obj/item/stack/cable_coil, + /obj/item/tool/multitool, + /obj/item/flashlight, + /obj/item/t_scanner, + /obj/item/tool/analyzer, + /obj/item/tool/taperoll/engineering, + /obj/item/tool/extinguisher/mini, + /obj/item/tool/shovel/etool, + )) + +/datum/storage/belt/medical_small + storage_slots = 15 + max_storage_space = 30 + max_w_class = 3 + +/datum/storage/belt/medical_small/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/healthanalyzer, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/storage/pill_bottle, + /obj/item/storage/pill_bottle/packet, + /obj/item/stack/medical, + /obj/item/reagent_containers/hypospray/autoinjector, + /obj/item/reagent_containers/dropper, + )) + +/datum/storage/belt/lifesaver + storage_slots = 21 //can hold 3 "rows" of very limited medical equipment, but it *should* give a decent boost to squad medics. + max_storage_space = 42 + max_w_class = WEIGHT_CLASS_SMALL + +/datum/storage/belt/lifesaver/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/healthanalyzer, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/storage/pill_bottle, + /obj/item/storage/syringe_case, + /obj/item/reagent_containers/hypospray/autoinjector, + /obj/item/stack/medical, + )) + +/datum/storage/belt/rig + storage_slots = 16 + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 42 + +/datum/storage/belt/rig/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/healthanalyzer, + /obj/item/reagent_containers/glass/beaker, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/hypospray, + /obj/item/storage/pill_bottle, + /obj/item/storage/syringe_case, + /obj/item/stack/medical, + /obj/item/bodybag, + /obj/item/defibrillator, + /obj/item/roller, + /obj/item/tool/research, + )) + +/datum/storage/belt/hypospraybelt + storage_slots = 21 + max_storage_space = 42 + max_w_class = WEIGHT_CLASS_SMALL + +/datum/storage/belt/hypospraybelt/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/healthanalyzer, + /obj/item/reagent_containers/glass/beaker, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/hypospray, + /obj/item/storage/syringe_case, + )) + +/datum/storage/belt/security + storage_slots = 7 + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 21 + +/datum/storage/belt/security/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/explosive/grenade/flashbang, + /obj/item/explosive/grenade/chem_grenade/teargas, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/flash, + /obj/item/clothing/glasses, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/handful, + /obj/item/reagent_containers/food/snacks/donut, + /obj/item/weapon/baton, + /obj/item/weapon/gun/energy/taser, + /obj/item/tool/lighter/zippo, + /obj/item/storage/fancy/cigarettes, + /obj/item/clothing/glasses/hud/security, + /obj/item/flashlight, + /obj/item/radio/headset, + /obj/item/tool/taperoll/police, + ), + cant_hold_list = list( + /obj/item/weapon/gun, + ) + ) + + +/datum/storage/belt/security/tactical + storage_slots = 9 + +/datum/storage/belt/marine + storage_slots = 6 + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 18 + +/datum/storage/belt/marine/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/weapon/combat_knife, + /obj/item/attachable/bayonetknife, + /obj/item/explosive/grenade/flare/civilian, + /obj/item/explosive/grenade/flare, + /obj/item/ammo_magazine/rifle, + /obj/item/cell/lasgun, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/revolver, + /obj/item/ammo_magazine/sniper, + /obj/item/ammo_magazine/handful, + /obj/item/ammo_magazine/railgun, + /obj/item/explosive/grenade, + /obj/item/explosive/mine, + /obj/item/reagent_containers/food/snacks, + )) + +/datum/storage/belt/marine/sectoid/New(atom/parent) + . = ..() + set_holdable(list( + /obj/item/weapon/combat_knife, + /obj/item/attachable/bayonetknife, + /obj/item/explosive/grenade, + /obj/item/ammo_magazine/rifle, + /obj/item/cell/lasgun, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/revolver, + /obj/item/ammo_magazine/sniper, + /obj/item/ammo_magazine/handful, + /obj/item/explosive/grenade, + /obj/item/tool/crowbar, + )) + +/datum/storage/belt/shotgun + storage_slots = 14 + max_w_class = WEIGHT_CLASS_SMALL + max_storage_space = 28 + +/datum/storage/belt/shotgun/New(atom/parent) + . = ..() + set_holdable(list(/obj/item/ammo_magazine/handful)) + +/datum/storage/belt/shotgun/martini + storage_slots = 12 + max_storage_space = 24 + sprite_slots = 6 + draw_mode = 1 + +/datum/storage/belt/knifepouch + storage_slots = 6 + max_w_class = WEIGHT_CLASS_TINY + max_storage_space = 6 + draw_mode = TRUE + +/datum/storage/belt/knifepouch/New(atom/parent) + . = ..() + set_holdable(list(/obj/item/stack/throwing_knife)) + +/datum/storage/belt/grenade + storage_slots = 9 + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 27 + +/datum/storage/belt/grenade/New(atom/parent) + . = ..() + set_holdable(list(/obj/item/explosive/grenade)) + +/datum/storage/belt/grenade/b17 + storage_slots = 16 + max_storage_space = 48 + +/datum/storage/belt/sparepouch + storage_slots = null + max_storage_space = 9 + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/belt/protein_pack + storage_slots = 20 + max_storage_space = 20 + max_w_class = WEIGHT_CLASS_TINY + sprite_slots = 4 + +/datum/storage/belt/protein_pack/New(atom/parent) + . = ..() + set_holdable(list(/obj/item/reagent_containers/food/snacks/protein_pack)) diff --git a/code/datums/storage/subtypes/bible.dm b/code/datums/storage/subtypes/bible.dm new file mode 100644 index 0000000000000..afb0df88ce48b --- /dev/null +++ b/code/datums/storage/subtypes/bible.dm @@ -0,0 +1,12 @@ +/datum/storage/bible + storage_slots = 1 + +/datum/storage/bible/alcoholic + storage_slots = 7 + +/datum/storage/bible/alcoholic/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/reagent_containers/food/drinks/cans, + /obj/item/spacecash, + )) diff --git a/code/datums/storage/subtypes/box.dm b/code/datums/storage/subtypes/box.dm new file mode 100644 index 0000000000000..fb650a2733d12 --- /dev/null +++ b/code/datums/storage/subtypes/box.dm @@ -0,0 +1,102 @@ +/datum/storage/box + foldable = /obj/item/paper/crumpled + storage_slots = null + max_w_class = WEIGHT_CLASS_SMALL //Changed because of in-game abuse + +/datum/storage/box/lights + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap + max_storage_space = 42 //holds 21 items of w_class 2 + use_to_pickup = TRUE // for picking up broken bulbs, not that most people will try + +/datum/storage/box/mre + storage_slots = 4 + foldable = 0 + trash_item = /obj/item/trash/mre + +/datum/storage/box/mre/New(atom/parent) + . = ..() + set_holdable(list(/obj/item/reagent_containers/food/snacks/packaged_meal)) + +/datum/storage/box/mre/remove_from_storage(obj/item/item, atom/new_location, mob/user) + . = ..() + if(. && !length(parent.contents) && !gc_destroyed) + qdel(parent) + +/datum/storage/box/visual + max_w_class = WEIGHT_CLASS_BULKY + storage_slots = 32 // 8 images x 4 items + max_storage_space = 64 + use_to_pickup = TRUE + +/datum/storage/box/visual/New(atom/parent) + . = ..() + set_holdable(list(/obj/item)) //This box should normally be unobtainable so here we go + +/datum/storage/box/visual/magazine + max_w_class = WEIGHT_CLASS_BULKY + storage_slots = 32 // 8 images x 4 items + max_storage_space = 64 //SMG and pistol sized (tiny and small) mags can fit all 32 slots, normal (LMG and AR) fit 21 + +/datum/storage/box/visual/magazine/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/ammo_magazine/packet, + /obj/item/ammo_magazine/flamer_tank, + /obj/item/ammo_magazine/handful, + /obj/item/ammo_magazine/m412l1_hpr, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/railgun, + /obj/item/ammo_magazine/revolver, + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/shotgun, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + /obj/item/ammo_magazine/standard_gpmg, + /obj/item/ammo_magazine/hsg_102, + /obj/item/ammo_magazine/standard_lmg, + /obj/item/ammo_magazine/standard_mmg, + /obj/item/ammo_magazine/heavymachinegun, + /obj/item/ammo_magazine/standard_smartmachinegun, + /obj/item/ammo_magazine/som_mg, + /obj/item/cell/lasgun, + ), + cant_hold_list = list( + /obj/item/ammo_magazine/flamer_tank/backtank, + /obj/item/ammo_magazine/flamer_tank/backtank/X, + )) + +/datum/storage/box/visual/magazine/compact + storage_slots = 40 //Same storage as the old prefilled mag boxes found in the req vendor. + max_storage_space = 40 //Adjusted in update_stats() to fit the needs. + +/datum/storage/box/visual/magazine/compact/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list(/obj/item/ammo_magazine), //Able to hold all ammo due to this box being unobtainable. admemes beware of the rocket crate. + cant_hold_list = list() + ) + +/datum/storage/box/visual/grenade + max_w_class = WEIGHT_CLASS_NORMAL + storage_slots = 25 + max_storage_space = 50 + +/datum/storage/box/visual/grenade/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list(/obj/item/explosive/grenade), + cant_hold_list = list() + ) + +/datum/storage/box/crate/sentry + max_w_class = WEIGHT_CLASS_HUGE + storage_slots = 6 + max_storage_space = 16 + +/datum/storage/box/crate/sentry/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list(/obj/item/weapon/gun/sentry, /obj/item/ammo_magazine/sentry), + storage_type_limits_list = list(/obj/item/weapon/gun/sentry, /obj/item/ammo_magazine/sentry) + ) diff --git a/code/datums/storage/subtypes/briefcase.dm b/code/datums/storage/subtypes/briefcase.dm new file mode 100644 index 0000000000000..ac6f73cd5bdcd --- /dev/null +++ b/code/datums/storage/subtypes/briefcase.dm @@ -0,0 +1,20 @@ +/datum/storage/briefcase + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 16 + +/datum/storage/briefcase/standard_magnum + max_storage_space = 15 + storage_slots = 9 + +/datum/storage/briefcase/standard_magnum/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/weapon/gun/revolver/standard_magnum, + /obj/item/attachable/stock/t76, + /obj/item/attachable/scope/standard_magnum, + /obj/item/ammo_magazine/revolver/standard_magnum, + ), + storage_type_limits_list = list(/obj/item/weapon/gun) + ) + storage_type_limits_max = list(/obj/item/weapon/gun = 1) diff --git a/code/datums/storage/subtypes/holster.dm b/code/datums/storage/subtypes/holster.dm new file mode 100644 index 0000000000000..d9fed8db0644d --- /dev/null +++ b/code/datums/storage/subtypes/holster.dm @@ -0,0 +1,212 @@ +/datum/storage/holster + max_w_class = WEIGHT_CLASS_BULKY // normally the special item will be larger than what should fit. Child items will have lower limits and an override + storage_slots = 1 + max_storage_space = 4 + draw_mode = 1 + allow_drawing_method = TRUE + +/datum/storage/holster/New(atom/parent) + . = ..() + set_holdable(storage_type_limits_list = list(/obj/item/weapon)) + storage_type_limits_max = list(/obj/item/weapon = 1) + +/datum/storage/holster/should_access_delay(obj/item/item, mob/user, taking_out) //defaults to 0 + if(!taking_out) // Always allow items to be tossed in instantly + return FALSE + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + if(human_user.back == parent) + return TRUE + return FALSE + +/datum/storage/holster/handle_item_insertion(obj/item/item, prevent_warning = 0) + . = ..() + var/obj/item/storage/holster/holster = parent + if(!. || !is_type_in_list(item, holster.holsterable_allowed)) //check to see if the item being inserted is the snowflake item + return + holster.holstered_item = item + holster.update_icon() //So that the icon actually updates after we've assigned our holstered_item + playsound(parent, sheathe_sound, 15, 1) + +/datum/storage/holster/remove_from_storage(obj/item/item, atom/new_location, mob/user) + . = ..() + var/obj/item/storage/holster/holster = parent + if(!. || !is_type_in_list(item, holster.holsterable_allowed)) //check to see if the item being removed is the snowflake item + return + holster.holstered_item = null + holster.update_icon() //So that the icon actually updates after we've assigned our holstered_item + playsound(parent, draw_sound, 15, 1) + +/datum/storage/holster/backholster + max_w_class = WEIGHT_CLASS_NORMAL //normal items + max_storage_space = 24 + access_delay = 1.5 SECONDS ///0 out for satchel types + +/datum/storage/holster/backholster/rpg + storage_slots = 5 + max_w_class = WEIGHT_CLASS_BULKY + access_delay = 0.5 SECONDS + +/datum/storage/holster/backholster/rpg/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/ammo_magazine/rocket, + /obj/item/weapon/gun/launcher/rocket/recoillessrifle, + ), + storage_type_limits_list = list(/obj/item/weapon/gun/launcher/rocket/recoillessrifle) //only one RR per bag + ) + +/datum/storage/holster/backholster/rpg/som/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/ammo_magazine/rocket, + /obj/item/weapon/gun/launcher/rocket/som, + ), + storage_type_limits_list = list(/obj/item/weapon/gun/launcher/rocket/som) + ) + +/datum/storage/holster/backholster/mortar + max_w_class = WEIGHT_CLASS_NORMAL + storage_slots = null + max_storage_space = 30 + access_delay = 0 + +/datum/storage/holster/backholster/mortar/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/mortal_shell/he, + /obj/item/mortal_shell/incendiary, + /obj/item/mortal_shell/smoke, + /obj/item/mortal_shell/flare, + /obj/item/mortal_shell/plasmaloss, + /obj/item/mortar_kit, + ), + storage_type_limits_list = list(/obj/item/mortar_kit) + ) + storage_type_limits_max = list(/obj/item/mortar_kit = 1) + +/datum/storage/holster/backholster/flamer + storage_slots = null + max_storage_space = 16 + max_w_class = WEIGHT_CLASS_NORMAL + access_delay = 0 + +/datum/storage/holster/backholster/flamer/New(atom/parent) + . = ..() + set_holdable(storage_type_limits_list = list(/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer)) + storage_type_limits_max = list(/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer = 1) + +/datum/storage/holster/backholster/flamer/handle_item_insertion(obj/item/item, prevent_warning = 0, mob/user) + . = ..() + var/obj/item/storage/holster/backholster/flamer/holster = parent + if(holster.holstered_item == item) + var/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer/flamer = item + if(flamer.chamber_items.len == 0) + return + holster.refuel(flamer.chamber_items[1], user) + flamer.update_ammo_count() + +/datum/storage/holster/t19 + storage_slots = 4 + max_storage_space = 10 + max_w_class = WEIGHT_CLASS_BULKY + +/datum/storage/holster/t19/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/smg/standard_machinepistol, + /obj/item/ammo_magazine/smg/standard_machinepistol, + )) + +/datum/storage/holster/flarepouch + storage_slots = 28 + max_storage_space = 28 + refill_types = list(/obj/item/storage/box/m94) + refill_sound = "rustle" + +/datum/storage/holster/flarepouch/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/explosive/grenade/flare/civilian, + /obj/item/weapon/gun/grenade_launcher/single_shot/flare, + /obj/item/explosive/grenade/flare, + )) + storage_type_limits_max = list(/obj/item/weapon/gun/grenade_launcher/single_shot/flare = 1) + + +/datum/storage/holster/icc_mg + storage_slots = 5 + max_storage_space = 16 + +/datum/storage/holster/icc_mg/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/rifle/icc_mg, + /obj/item/ammo_magazine/icc_mg/packet, + )) + +/datum/storage/holster/belt + use_sound = null + storage_slots = 7 + max_storage_space = 15 + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/holster/belt/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/pistol, + /obj/item/ammo_magazine/pistol, + /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, + /obj/item/cell/lasgun/plasma, + /obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta, + /obj/item/cell/lasgun/lasrifle, + /obj/item/cell/lasgun/volkite/small, + )) + +/datum/storage/holster/belt/m44 + max_storage_space = 16 + max_w_class = WEIGHT_CLASS_BULKY + +/datum/storage/holster/belt/m44/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/revolver, + /obj/item/ammo_magazine/revolver, + )) + +/datum/storage/holster/belt/mateba + max_storage_space = 16 + +/datum/storage/holster/belt/mateba/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/revolver/mateba, + /obj/item/ammo_magazine/revolver/mateba, + )) + +/datum/storage/holster/belt/korovin/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/pistol/c99, + /obj/item/ammo_magazine/pistol/c99, + /obj/item/ammo_magazine/pistol/c99t, + )) + +/datum/storage/holster/belt/ts34 + storage_slots = 3 + max_storage_space = 8 + +/datum/storage/holster/belt/ts34/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/ammo_magazine/handful, + ), + storage_type_limits_list = list( + /obj/item/weapon/gun/shotgun/double/marine, + /obj/item/ammo_magazine/shotgun, + ) + ) diff --git a/code/datums/storage/subtypes/internal.dm b/code/datums/storage/subtypes/internal.dm new file mode 100644 index 0000000000000..68fcd9ab73f73 --- /dev/null +++ b/code/datums/storage/subtypes/internal.dm @@ -0,0 +1,477 @@ +/datum/storage/internal + allow_drawing_method = FALSE /// Unable to set draw_mode ourselves + +//Reason for this override is due to conflict signal from modules, which detach on ALT+CLICK +/datum/storage/internal/register_storage_signals(atom/parent) + //Clicking signals + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) //Left click + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) //Left click empty hand + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) //Item clicking on itself + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND_ALTERNATE, PROC_REF(on_attack_hand_alternate)) //Right click empty hand + RegisterSignal(parent, COMSIG_CLICK_ALT_RIGHT, PROC_REF(on_alt_right_click)) //ALT + right click + RegisterSignal(parent, COMSIG_CLICK_CTRL, PROC_REF(on_ctrl_click)) //CTRL + Left click + RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, PROC_REF(on_attack_ghost)) //Ghosts can see inside your storages + RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, PROC_REF(on_mousedrop_onto)) //Click dragging + + //Something is happening to our storage + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) //Getting EMP'd + RegisterSignal(parent, COMSIG_CONTENTS_EX_ACT, PROC_REF(on_contents_explode)) //Getting exploded + + RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, PROC_REF(handle_atom_del)) + RegisterSignal(parent, ATOM_MAX_STACK_MERGING, PROC_REF(max_stack_merging)) + RegisterSignal(parent, ATOM_RECALCULATE_STORAGE_SPACE, PROC_REF(recalculate_storage_space)) + RegisterSignals(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(update_verbs)) + RegisterSignal(parent, COMSIG_ITEM_QUICK_EQUIP, PROC_REF(on_quick_equip_request)) + +//Reason for this override is due to conflict signal from modules, which detach on ALT+CLICK +/datum/storage/internal/unregister_storage_signals(atom/parent) + UnregisterSignal(parent, list( + COMSIG_ATOM_ATTACKBY, + COMSIG_ATOM_ATTACK_HAND, + COMSIG_ITEM_ATTACK_SELF, + COMSIG_ATOM_ATTACK_HAND_ALTERNATE, + COMSIG_CLICK_ALT_RIGHT, + COMSIG_CLICK_CTRL, + COMSIG_ATOM_ATTACK_GHOST, + COMSIG_MOUSEDROP_ONTO, + + COMSIG_ATOM_EMP_ACT, + COMSIG_CONTENTS_EX_ACT, + + COMSIG_ATOM_CONTENTS_DEL, + ATOM_MAX_STACK_MERGING, + ATOM_RECALCULATE_STORAGE_SPACE, + COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_ITEM_QUICK_EQUIP, + )) + +/datum/storage/internal/handle_item_insertion(obj/item/W, prevent_warning = FALSE) + . = ..() + var/obj/master_item = parent.loc + master_item?.update_icon() + +/datum/storage/internal/remove_from_storage(obj/item/W, atom/new_location, mob/user) + . = ..() + var/obj/master_item = parent.loc + if(isturf(master_item) || ismob(master_item)) + return + master_item?.update_icon() + +/datum/storage/internal/on_attackby(datum/source, obj/item/attacking_item, mob/user, params) + if(!ismodulararmormodule(attacking_item)) + return ..() + +/datum/storage/internal/motorbike_pack + storage_slots = 4 + max_w_class = WEIGHT_CLASS_SMALL + max_storage_space = 8 + +/datum/storage/internal/motorbike_pack/attempt_draw_object() + return //the sidecar upgrade is in parent.contents, so I have to limit this functionality + +/datum/storage/internal/motorbike_pack/on_ctrl_click() + return //We want to be able to grab the bike without pulling something out + +/datum/storage/internal/webbing + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 3 + +/datum/storage/internal/webbing/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list( + /obj/item/stack/razorwire, + /obj/item/stack/sheet, + /obj/item/stack/sandbags, + /obj/item/stack/snow, + /obj/item/cell/lasgun/volkite/powerpack, + /obj/item/cell/lasgun/plasma, + ), + storage_type_limits_list = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + /obj/item/cell/lasgun, + ) + ) + +/datum/storage/internal/vest + storage_slots = 5 + max_w_class = WEIGHT_CLASS_SMALL + +/datum/storage/internal/vest/New(atom/parent) + . = ..() + set_holdable(cant_hold_list = list( + /obj/item/stack/razorwire, + /obj/item/stack/sheet, + /obj/item/stack/sandbags, + /obj/item/stack/snow, + )) + +/datum/storage/internal/white_vest + max_w_class = WEIGHT_CLASS_BULKY + storage_slots = 6 //one more than the brown webbing but you lose out on being able to hold non-medic stuff + max_storage_space = 24 + +/datum/storage/internal/white_vest/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/healthanalyzer, + /obj/item/stack/medical, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/hypospray/advanced, + /obj/item/reagent_containers/hypospray/autoinjector, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/pill, + /obj/item/storage/pill_bottle, + /obj/item/clothing/glasses/hud/health, + /obj/item/clothing/gloves/latex, + /obj/item/tweezers, + /obj/item/tweezers_advanced, + /obj/item/bodybag, + /obj/item/roller, + /obj/item/whistle, + )) + +/datum/storage/internal/surgery_webbing + storage_slots = 12 + max_storage_space = 24 + +/datum/storage/internal/surgery_webbing/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/tool/surgery, + /obj/item/stack/nanopaste, + /obj/item/tweezers, + /obj/item/tweezers_advanced, + )) + +/datum/storage/internal/holster + storage_slots = 4 + max_storage_space = 10 + max_w_class = WEIGHT_CLASS_BULKY + +/datum/storage/internal/holster/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/gun/pistol, + /obj/item/ammo_magazine/pistol, + /obj/item/weapon/gun/revolver, + /obj/item/ammo_magazine/revolver, + /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, + /obj/item/cell/lasgun/lasrifle, + )) + storage_type_limits_max = list(/obj/item/weapon/gun = 1) + +/datum/storage/internal/modular + max_storage_space = 2 + storage_slots = 2 + max_w_class = WEIGHT_CLASS_TINY + +/datum/storage/internal/modular/New(atom/parent) + . = ..() + set_holdable( + can_hold_list = list(/obj/item/stack), + storage_type_limits_list = list(/obj/item/clothing/glasses) + ) + +/datum/storage/internal/pocket + max_storage_space = 6 + storage_slots = 2 + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/internal/pocket/New(atom/parent) + . = ..() + set_holdable( + cant_hold_list = list(/obj/item/cell/lasgun/volkite/powerpack), + storage_type_limits_list = list( + /obj/item/ammo_magazine/rifle, + /obj/item/cell/lasgun, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/revolver, + /obj/item/ammo_magazine/sniper, + /obj/item/ammo_magazine/handful, + ) + ) + +/datum/storage/internal/pocket/insertion_message(obj/item/item, mob/user) + var/vision_distance = item.w_class >= WEIGHT_CLASS_NORMAL ? 3 : 1 + //Grab the name of the object this pocket belongs to + user.visible_message(span_notice("[user] puts \a [item] into \the [parent.name]."),\ + span_notice("You put \the [item] into \the [parent.name]."),\ + null, vision_distance) + +/datum/storage/internal/pocket/medical + max_storage_space = 30 + storage_slots = 5 + max_w_class = WEIGHT_CLASS_SMALL + +/datum/storage/internal/pocket/medical/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/healthanalyzer, + /obj/item/stack/medical, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/hypospray/advanced, + /obj/item/reagent_containers/hypospray/autoinjector, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/pill, + /obj/item/storage/pill_bottle, + /obj/item/clothing/glasses/hud/health, + /obj/item/clothing/gloves/latex, + /obj/item/tweezers, + /obj/item/tweezers_advanced, + /obj/item/whistle, + )) + +/datum/storage/internal/general + max_storage_space = 6 + storage_slots = 2 + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/internal/general/New(atom/parent) + . = ..() + set_holdable( + cant_hold_list = list(/obj/item/cell/lasgun/volkite/powerpack), + storage_type_limits_list = list( + /obj/item/ammo_magazine/rifle, + /obj/item/cell/lasgun, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/revolver, + /obj/item/ammo_magazine/sniper, + /obj/item/ammo_magazine/handful, + /obj/item/cell/lasgun/plasma, + ) + ) + +/datum/storage/internal/ammo_mag + max_storage_space = 15 + storage_slots = 4 + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/internal/ammo_mag/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/combat_knife, + /obj/item/attachable/bayonetknife, + /obj/item/explosive/grenade/flare/civilian, + /obj/item/explosive/grenade/flare, + /obj/item/ammo_magazine/rifle, + /obj/item/cell/lasgun, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/pistol, + /obj/item/ammo_magazine/revolver, + /obj/item/ammo_magazine/sniper, + /obj/item/ammo_magazine/handful, + /obj/item/explosive/grenade, + /obj/item/explosive/mine, + /obj/item/reagent_containers/food/snacks, + )) + +/datum/storage/internal/engineering + max_storage_space = 15 + storage_slots = 5 + max_w_class = WEIGHT_CLASS_BULKY + +/datum/storage/internal/engineering/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/stack/barbed_wire, + /obj/item/stack/sheet, + /obj/item/stack/rods, + /obj/item/stack/cable_coil, + /obj/item/stack/sandbags_empty, + /obj/item/stack/sandbags, + /obj/item/stack/razorwire, + /obj/item/tool/shovel/etool, + /obj/item/tool/wrench, + /obj/item/tool/weldingtool, + /obj/item/tool/wirecutters, + /obj/item/tool/crowbar, + /obj/item/tool/screwdriver, + /obj/item/tool/handheld_charger, + /obj/item/tool/multitool, + /obj/item/binoculars/tactical/range, + /obj/item/explosive/plastique, + /obj/item/explosive/grenade/chem_grenade/razorburn_small, + /obj/item/explosive/grenade/chem_grenade/razorburn_large, + /obj/item/cell/apc, + /obj/item/cell/high, + /obj/item/cell/rtg, + /obj/item/cell/super, + /obj/item/cell/potato, + /obj/item/assembly/signaler, + /obj/item/detpack, + /obj/item/circuitboard, + /obj/item/lightreplacer, + )) + +/datum/storage/internal/medical + max_storage_space = 30 + storage_slots = 5 + max_w_class = WEIGHT_CLASS_SMALL + +/datum/storage/internal/medical/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/healthanalyzer, + /obj/item/stack/medical, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/hypospray/advanced, + /obj/item/reagent_containers/hypospray/autoinjector, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/pill, + /obj/item/storage/syringe_case, + /obj/item/roller/medevac, + /obj/item/roller, + /obj/item/bodybag, + /obj/item/storage/pill_bottle, + /obj/item/clothing/glasses/hud/health, + /obj/item/clothing/gloves/latex, + /obj/item/tweezers, + /obj/item/tweezers_advanced, + /obj/item/whistle, + )) + +/datum/storage/internal/injector + max_storage_space = 10 + storage_slots = 10 + max_w_class = WEIGHT_CLASS_TINY + +/datum/storage/internal/injector/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/hypospray/autoinjector, + )) + +/datum/storage/internal/integrated + storage_slots = null + max_storage_space = 15 + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/storage/internal/grenade + max_storage_space = 12 + storage_slots = 6 + max_w_class = WEIGHT_CLASS_SMALL + +/datum/storage/internal/grenade/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/explosive/grenade, + /obj/item/reagent_containers/food/drinks/cans, + )) + +/datum/storage/internal/shoes/boot_knife + max_storage_space = 3 + storage_slots = 1 + draw_mode = TRUE + +/datum/storage/internal/shoes/boot_knife/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/weapon/combat_knife, + /obj/item/weapon/gun/pistol/standard_pocketpistol, + /obj/item/weapon/gun/shotgun/double/derringer, + /obj/item/attachable/bayonetknife, + /obj/item/attachable/bayonetknife/som, + /obj/item/stack/throwing_knife, + /obj/item/storage/box/MRE, + )) + +/datum/storage/internal/marinehelmet + max_storage_space = 3 + storage_slots = 2 + max_w_class = WEIGHT_CLASS_TINY + +/datum/storage/internal/marinehelmet/New(atom/parent) + . = ..() + set_holdable( + cant_hold_list = list( + /obj/item/stack/sheet, + /obj/item/stack/catwalk, + /obj/item/stack/rods, + /obj/item/stack/sandbags_empty, + /obj/item/stack/tile, + /obj/item/stack/cable_coil, + ), + storage_type_limits_list = list( + /obj/item/clothing/glasses, + /obj/item/reagent_containers/food/snacks, + /obj/item/stack/medical/heal_pack/gauze, + /obj/item/stack/medical/heal_pack/ointment, + /obj/item/ammo_magazine/handful, + ) + ) + +/datum/storage/internal/ammo_rack //Hey isn't this great? Due to this storage refactor, deployables can have storage too! + storage_slots = 10 + max_storage_space = 40 + max_w_class = WEIGHT_CLASS_BULKY + +/datum/storage/internal/ammo_rack/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list(/obj/item/ammo_magazine/standard_atgun)) + +//Reason for this override is due to conflict controls from deployables +/datum/storage/internal/ammo_rack/register_storage_signals(atom/parent) + //Clicking signals + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) //Left click + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) //Item clicking on itself + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND_ALTERNATE, PROC_REF(on_attack_hand_alternate)) //Right click empty hand + RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, PROC_REF(on_attack_ghost)) //Ghosts can see inside your storages + + //Something is happening to our storage + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) //Getting EMP'd + RegisterSignal(parent, COMSIG_CONTENTS_EX_ACT, PROC_REF(on_contents_explode)) //Getting exploded + + RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, PROC_REF(handle_atom_del)) + RegisterSignal(parent, ATOM_MAX_STACK_MERGING, PROC_REF(max_stack_merging)) + RegisterSignal(parent, ATOM_RECALCULATE_STORAGE_SPACE, PROC_REF(recalculate_storage_space)) + RegisterSignals(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(update_verbs)) + RegisterSignal(parent, COMSIG_ITEM_QUICK_EQUIP, PROC_REF(on_quick_equip_request)) + +//Reason for this override is due to conflict controls from deployables +/datum/storage/internal/ammo_rack/unregister_storage_signals(atom/parent) + UnregisterSignal(parent, list( + COMSIG_ATOM_ATTACKBY, + COMSIG_ITEM_ATTACK_SELF, + COMSIG_ATOM_ATTACK_HAND_ALTERNATE, + COMSIG_ATOM_ATTACK_GHOST, + + COMSIG_ATOM_EMP_ACT, + COMSIG_CONTENTS_EX_ACT, + + COMSIG_ATOM_CONTENTS_DEL, + ATOM_MAX_STACK_MERGING, + ATOM_RECALCULATE_STORAGE_SPACE, + COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_ITEM_QUICK_EQUIP, + )) + +// Special override to reload our gun if it's empty before putting extra shells into storage +/datum/storage/internal/ammo_rack/on_attackby(datum/source, obj/item/attacking_item, mob/user, params) + if(user.s_active != src) //Only insert shells into storage if our storage UI is open + return FALSE + + if(length(refill_types)) + for(var/typepath in refill_types) + if(istype(attacking_item, typepath)) + INVOKE_ASYNC(src, PROC_REF(do_refill), attacking_item, user) + return + + if(!can_be_inserted(attacking_item, user)) + return FALSE + INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), attacking_item, FALSE, user) + return COMPONENT_NO_AFTERATTACK + +/datum/storage/internal/ammo_rack/on_attack_hand_alternate(datum/source, mob/living/user) //Override for subtype since this is in world storage + if(user.CanReach(source)) + open(user) diff --git a/code/datums/storage/subtypes/lockbox.dm b/code/datums/storage/subtypes/lockbox.dm new file mode 100644 index 0000000000000..83c8d53f8edb5 --- /dev/null +++ b/code/datums/storage/subtypes/lockbox.dm @@ -0,0 +1,12 @@ +/datum/storage/lockbox + max_w_class = WEIGHT_CLASS_NORMAL + max_storage_space = 14 + storage_slots = 4 + +/datum/storage/lockbox/show_to(mob/user) + var/obj/item/storage/lockbox/parent_box = parent + if(parent_box.locked) + to_chat(user, span_warning("Its locked!")) + return + + return ..() diff --git a/code/datums/storage/subtypes/pill_bottle.dm b/code/datums/storage/subtypes/pill_bottle.dm new file mode 100644 index 0000000000000..024cd8c188e4d --- /dev/null +++ b/code/datums/storage/subtypes/pill_bottle.dm @@ -0,0 +1,45 @@ +/datum/storage/pill_bottle + allow_quick_gather = TRUE + use_to_pickup = TRUE + storage_slots = null + use_sound = 'sound/items/pillbottle.ogg' + max_storage_space = 16 + refill_types = list(/obj/item/storage/pill_bottle) + refill_sound = 'sound/items/pills.ogg' + +/datum/storage/pill_bottle/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/reagent_containers/pill, + /obj/item/toy/dice, + /obj/item/paper, + )) + +/datum/storage/pill_bottle/remove_from_storage(obj/item/item, atom/new_location, mob/user) + . = ..() + if(. && user) + playsound(user, 'sound/items/pills.ogg', 15, 1) + +/datum/storage/pill_bottle/packet + storage_slots = 8 + max_w_class = 0 + max_storage_space = 8 + trash_item = /obj/item/trash/pillpacket + refill_types = null + refill_sound = null + storage_flags = BYPASS_VENDOR_CHECK + +/datum/storage/pill_bottle/packet/New(atom/parent) + . = ..() + set_holdable(cant_hold_list = list(/obj/item/reagent_containers/pill)) //Nada. Once you take the pills out. They don't come back in. + +/datum/storage/pill_bottle/packet/remove_from_storage(obj/item/item, atom/new_location, mob/user) + . = ..() + if(!.) + return + if(!length(parent.contents) && !QDELETED(parent)) + var/turf/parent_turf = get_turf(parent) + new trash_item(parent_turf) + qdel(parent) + return + parent.update_icon() diff --git a/code/datums/storage/subtypes/pouch.dm b/code/datums/storage/subtypes/pouch.dm new file mode 100644 index 0000000000000..8e74308c84478 --- /dev/null +++ b/code/datums/storage/subtypes/pouch.dm @@ -0,0 +1,4 @@ +/datum/storage/pouch + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 1 + allow_drawing_method = TRUE diff --git a/code/datums/storage/subtypes/reagent_tank.dm b/code/datums/storage/subtypes/reagent_tank.dm new file mode 100644 index 0000000000000..11f92e9ed83f1 --- /dev/null +++ b/code/datums/storage/subtypes/reagent_tank.dm @@ -0,0 +1,27 @@ +/datum/storage/reagent_tank + max_w_class = WEIGHT_CLASS_SMALL //Beaker size + storage_slots = null + max_storage_space = 5 + +/datum/storage/reagent_tank/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list(/obj/item/reagent_containers, /obj/item/reagent_scanner)) + +/datum/storage/reagent_tank/open(mob/user) + var/obj/item/reagent_tank = parent + if(CHECK_BITFIELD(reagent_tank.item_flags, IS_DEPLOYED)) + return ..() + +/datum/storage/reagent_tank/attempt_draw_object(mob/living/user) + var/obj/item/reagent_tank = parent + if(!CHECK_BITFIELD(reagent_tank.item_flags, IS_DEPLOYED)) + user.balloon_alert(user, "Not deployed") + return FALSE + return ..() + +/datum/storage/reagent_tank/can_be_inserted(obj/item/item_to_insert, mob/user, warning) + var/obj/item/reagent_tank = parent + if(!CHECK_BITFIELD(reagent_tank.item_flags, IS_DEPLOYED)) + user.balloon_alert(user, "Not deployed") + return FALSE + return ..() diff --git a/code/datums/storage/subtypes/surgical_tray.dm b/code/datums/storage/subtypes/surgical_tray.dm new file mode 100644 index 0000000000000..bd573b130a29f --- /dev/null +++ b/code/datums/storage/subtypes/surgical_tray.dm @@ -0,0 +1,7 @@ +/datum/storage/surgical_tray + storage_slots = 12 + max_storage_space = 24 + +/datum/storage/surgical_tray/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list(/obj/item/tool/surgery, /obj/item/stack/nanopaste,)) diff --git a/code/datums/storage/subtypes/tank.dm b/code/datums/storage/subtypes/tank.dm new file mode 100644 index 0000000000000..713f77de66920 --- /dev/null +++ b/code/datums/storage/subtypes/tank.dm @@ -0,0 +1,26 @@ +/*! + * Anything tank related + * Basically ammo racks + */ +/datum/storage/tank + allow_drawing_method = FALSE /// Unable to set draw_mode ourselves + max_w_class = WEIGHT_CLASS_GIGANTIC //they're all WEIGHT_CLASS_GIGANTIC which is 6 + max_storage_space = 120 + storage_slots = 20 + +/datum/storage/tank/on_attack_hand(datum/source, mob/living/user) //Override for tank subtype since this is deployed storage + if(parent.Adjacent(user)) + open(user) + +/datum/storage/tank/ammorack_primary/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/ammo_magazine/tank/ltb_cannon, + /obj/item/ammo_magazine/tank/ltaap_chaingun, + )) + +/datum/storage/tank/ammorack_secondary/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/ammo_magazine/tank/secondary_cupola, + )) diff --git a/code/datums/storage/subtypes/wallet.dm b/code/datums/storage/subtypes/wallet.dm new file mode 100644 index 0000000000000..d504f09ab5dd4 --- /dev/null +++ b/code/datums/storage/subtypes/wallet.dm @@ -0,0 +1,42 @@ +/datum/storage/wallet + storage_slots = 10 + +/datum/storage/wallet/New(atom/parent) + . = ..() + set_holdable(can_hold_list = list( + /obj/item/spacecash, + /obj/item/card, + /obj/item/clothing/mask/cigarette, + /obj/item/flashlight/pen, + /obj/item/seeds, + /obj/item/stack/medical, + /obj/item/toy/crayon, + /obj/item/coin, + /obj/item/toy/dice, + /obj/item/disk, + /obj/item/implanter, + /obj/item/tool/lighter, + /obj/item/tool/match, + /obj/item/paper, + /obj/item/tool/pen, + /obj/item/photo, + /obj/item/reagent_containers/dropper, + /obj/item/tool/screwdriver, + /obj/item/tool/stamp, + )) + +/datum/storage/wallet/remove_from_storage(obj/item/item, atom/new_location, mob/user) + . = ..() + var/obj/item/storage/wallet/parent_wallet = parent + if(item == parent_wallet.front_id) + parent_wallet.front_id = null + parent_wallet.name = initial(parent_wallet.name) + parent_wallet.update_icon() + +/datum/storage/wallet/handle_item_insertion(obj/item/item, prevent_warning = 0, mob/user) + . = ..() + var/obj/item/storage/wallet/parent_wallet = parent + if(!parent_wallet.front_id && istype(item, /obj/item/card/id)) + parent_wallet.front_id = item + parent_wallet.name = "[parent_wallet.name] ([parent_wallet.front_id])" + parent_wallet.update_icon() diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 18983064390b1..bea81a014d78f 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -95,15 +95,16 @@ /area/shuttle/mining name = "Mining Shuttle" -// blob_allowed = FALSE /area/shuttle/labor name = "Labor Camp Shuttle" -// blob_allowed = FALSE /area/shuttle/supply name = "Supply Shuttle" -// blob_allowed = FALSE + +/area/shuttle/vehicle_supply + name = "Vehicle Supply Shuttle" + /* /area/shuttle/escape name = "Emergency Shuttle" diff --git a/code/game/area/campaign_maps/som_raiding_base.dm b/code/game/area/campaign_maps/som_raiding_base.dm index 206dbb0e5c3ce..6a53571e12533 100644 --- a/code/game/area/campaign_maps/som_raiding_base.dm +++ b/code/game/area/campaign_maps/som_raiding_base.dm @@ -74,7 +74,11 @@ minimap_color = MINIMAP_AREA_CAVES /area/campaign/som_raiding/cave/tunnel - name = "\improper Old tunnels" + name = "\improper Old tunnels - South" + icon_state = "explored" + +/area/campaign/som_raiding/cave/tunnel_west + name = "\improper Old tunnels - West" icon_state = "explored" //outpost diff --git a/code/game/area/campaign_maps/tgmc_raiding_base.dm b/code/game/area/campaign_maps/tgmc_raiding_base.dm new file mode 100644 index 0000000000000..182e8dcf9c443 --- /dev/null +++ b/code/game/area/campaign_maps/tgmc_raiding_base.dm @@ -0,0 +1,283 @@ + +/area/campaign/tgmc_raiding + icon_state = "cliff_blocked" + area_flags = ALWAYS_RADIO + +//Colony +/area/campaign/tgmc_raiding/colony + icon_state = "red" + +/area/campaign/tgmc_raiding/colony/outdoor + name = "\improper Central Colony Grounds" + ceiling = CEILING_NONE + always_unpowered = TRUE + +/area/campaign/tgmc_raiding/colony/outdoor/northeast + name = "\improper Northeast Colony Grounds" + icon_state = "northeast" + +/area/campaign/tgmc_raiding/colony/outdoor/east + name = "\improper Eastern Colony Grounds" + icon_state = "east" + +/area/campaign/tgmc_raiding/colony/outdoor/southeast + name = "\improper Southeast Colony Grounds" + icon_state = "southeast" + +/area/campaign/tgmc_raiding/colony/outdoor/south + name = "\improper Southern Colony Grounds" + icon_state = "south" + +/area/campaign/tgmc_raiding/colony/outdoor/southwest + name = "\improper Southwest Colony Grounds" + icon_state = "southwest" + +//Colony Buildings + +/area/campaign/tgmc_raiding/colony/indoor + ceiling = CEILING_METAL + outside = FALSE + minimap_color = MINIMAP_AREA_COLONY + +/area/campaign/tgmc_raiding/colony/indoor/southwest_shed + name = "\improper Southwest Maintenance Shed" + icon_state = "panelsA" + +/area/campaign/tgmc_raiding/colony/indoor/housing + icon_state = "crew_quarters" + minimap_color = MINIMAP_AREA_LIVING + +/area/campaign/tgmc_raiding/colony/indoor/housing/southwest + name = "\improper Southwest Colony Housing" + +/area/campaign/tgmc_raiding/colony/indoor/housing/southeast + name = "\improper Southeast Colony Housing" + +/area/campaign/tgmc_raiding/colony/indoor/housing/east + name = "\improper East Colony Housing" + +/area/campaign/tgmc_raiding/colony/indoor/freezer + name = "\improper Colony Meat Locker" + icon_state = "kitchen" + +/area/campaign/tgmc_raiding/colony/indoor/engineering + name = "\improper Colony Engineering" + icon_state = "engine_smes" + minimap_color = MINIMAP_AREA_ENGI + +/area/campaign/tgmc_raiding/colony/indoor/engineering/storage + name = "\improper Colony Engineering Storage" + icon_state = "engine_storage" + +/area/campaign/tgmc_raiding/colony/indoor/garage + name = "\improper Colony Garage" + icon_state = "garage" + +/area/campaign/tgmc_raiding/colony/indoor/supermarket + name = "\improper Colony Supermarket" + icon_state = "disposal" + +/area/campaign/tgmc_raiding/colony/indoor/hydroponics + name = "\improper Colony Hydroponics" + icon_state = "hydro" + +/area/campaign/tgmc_raiding/colony/indoor/laundry + name = "\improper Colony Laundromat" + icon_state = "locker" + +/area/campaign/tgmc_raiding/colony/indoor/bar + name = "\improper Colony Bar" + icon_state = "bar" + +/area/campaign/tgmc_raiding/colony/indoor/toolbox + name = "\improper Colony Toolbox Storage" + icon_state = "engine_waste" + +/area/campaign/tgmc_raiding/colony/indoor/storage + name = "\improper Colony Storage Dome" + icon_state = "storage" + minimap_color = MINIMAP_AREA_REQ + +/area/campaign/tgmc_raiding/colony/indoor/chapel + name = "\improper Colony Chapel" + icon_state = "chapel" + +/area/campaign/tgmc_raiding/colony/indoor/security + name = "\improper Colony Security" + icon_state = "security" + minimap_color = MINIMAP_AREA_SEC + +/area/campaign/tgmc_raiding/colony/indoor/dome + name = "\improper Colony Northeast Dome" + icon_state = "construction" + +/area/campaign/tgmc_raiding/colony/indoor/station + name = "\improper Colony Subway Station" + icon_state = "hangar" + minimap_color = MINIMAP_AREA_LZ + +/area/campaign/tgmc_raiding/colony/indoor/bathroom + name = "\improper Colony Restroom" + icon_state = "toilet" + +//Underground + +/area/campaign/tgmc_raiding/underground + name = "\improper Underground" + icon_state = "cave" + ceiling = CEILING_UNDERGROUND + outside = FALSE + minimap_color = MINIMAP_AREA_CAVES + +/area/campaign/tgmc_raiding/underground/tunnel + icon_state = "shuttlegrn" + minimap_color = MINIMAP_AREA_LZ + +/area/campaign/tgmc_raiding/underground/tunnel/east + name = "\improper East Subway Tunnel" + +/area/campaign/tgmc_raiding/underground/tunnel/central + name = "\improper Central Subway Tunnel" + +/area/campaign/tgmc_raiding/underground/tunnel/south + name = "\improper South Subway Tunnel" + +/area/campaign/tgmc_raiding/underground/tunnel/west + name = "\improper West Subway Tunnel" + +/area/campaign/tgmc_raiding/underground/tunnel/station + name = "\improper Northwest Subway Station" + icon_state = "hangar" + +/area/campaign/tgmc_raiding/underground/security + name = "\improper Marine Security" + icon_state = "brig" + minimap_color = MINIMAP_AREA_SEC + +/area/campaign/tgmc_raiding/underground/security/central_outpost + name = "\improper Central Security Outpost" + +/area/campaign/tgmc_raiding/underground/security/south_outpost + name = "\improper South Security Outpost" + +/area/campaign/tgmc_raiding/underground/engineering + name = "\improper Engineering" + icon_state = "yellow" + minimap_color = MINIMAP_AREA_ENGI + +/area/campaign/tgmc_raiding/underground/engineering/filtration + name = "\improper Water Filtration" + icon_state = "blue2" + +/area/campaign/tgmc_raiding/underground/command + name = "\improper Central Command Office" + icon_state = "observatory" + minimap_color = MINIMAP_AREA_COMMAND + +/area/campaign/tgmc_raiding/underground/command/east + name = "\improper Eastern Command Office" + icon_state = "ai_upload" + +/area/campaign/tgmc_raiding/underground/command/captain + name = "\improper Captain's Office" + icon_state = "captain" + +/area/campaign/tgmc_raiding/underground/medbay + name = "\improper Medbay" + icon_state = "medbay" + minimap_color = MINIMAP_AREA_MEDBAY + +/area/campaign/tgmc_raiding/underground/living + minimap_color = MINIMAP_AREA_LIVING + +/area/campaign/tgmc_raiding/underground/living/barracks + name = "\improper Barracks" + icon_state = "crew_quarters" + +/area/campaign/tgmc_raiding/underground/living/cafeteria + name = "\improper Cafeteria" + icon_state = "cafeteria" + +/area/campaign/tgmc_raiding/underground/living/bathroom + name = "\improper Central Bathroom" + icon_state = "toilet" + +/area/campaign/tgmc_raiding/underground/living/bathroom/south + name = "\improper South Bathroom" + +/area/campaign/tgmc_raiding/underground/living/laundry + name = "\improper Marine Laundromat" + icon_state = "fitness" + +/area/campaign/tgmc_raiding/underground/living/boxing + name = "\improper Boxing Ring" + icon_state = "fitness" + +/area/campaign/tgmc_raiding/underground/living/chapel + name = "\improper Marine Chapel" + icon_state = "chapeloffice" + +/area/campaign/tgmc_raiding/underground/living/library + name = "\improper Marine Library" + icon_state = "library" + +/area/campaign/tgmc_raiding/underground/living/offices + name = "\improper Northwest Offices" + icon_state = "showroom" + +/area/campaign/tgmc_raiding/underground/general + icon_state = "purple" + minimap_color = MINIMAP_AREA_COLONY + +/area/campaign/tgmc_raiding/underground/general/firing_range + name = "\improper Firing Range" + +/area/campaign/tgmc_raiding/underground/general/prep + name = "\improper Marine Prep" + +/area/campaign/tgmc_raiding/underground/general/hallway + name = "\improper Central Base Hallway" + icon_state = "hallC1" + +/area/campaign/tgmc_raiding/underground/general/hallway/west + name = "\improper West Base Hallway" + +/area/campaign/tgmc_raiding/underground/general/hallway/east + name = "\improper East Base Hallway" + +/area/campaign/tgmc_raiding/underground/cargo + name = "\improper Cargo Dock" + icon_state = "eva" + minimap_color = MINIMAP_AREA_REQ + +/area/campaign/tgmc_raiding/underground/cargo/storage + name = "\improper Cargo Storage" + icon_state = "auxstorage" + +/area/campaign/tgmc_raiding/underground/maintenance + icon_state = "maintcentral" + +/area/campaign/tgmc_raiding/underground/maintenance/north + name = "\improper North Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/kitchen + name = "\improper Kitchen Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/laundry + name = "\improper Laundry Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/security + name = "\improper Security Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/filtration + name = "\improper Filtration Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/cargo + name = "\improper Cargo Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/prep + name = "\improper Prep Maintenance" + +/area/campaign/tgmc_raiding/underground/maintenance/sewer + name = "\improper Sewage Tunnel" + icon_state = "blue2" diff --git a/code/game/area/desertdam.dm b/code/game/area/desertdam.dm deleted file mode 100644 index 26de7e7b3ee19..0000000000000 --- a/code/game/area/desertdam.dm +++ /dev/null @@ -1,1031 +0,0 @@ -//Base Instance -/area/desert_dam - name = "Desert Dam" - icon_state = "cliff_blocked" - -//INTERIOR -// areas under rock -/area/desert_dam/interior - ceiling = CEILING_METAL - outside = FALSE - -//NorthEastern Lab Section -/area/desert_dam/interior/lab_northeast - ceiling = CEILING_DEEP_UNDERGROUND - minimap_color = MINIMAP_AREA_RESEARCH_CAVE - -/area/desert_dam/interior/lab_northeast - name = "Northeastern Lab" - icon_state = "purple" - -/area/desert_dam/interior/lab_northeast/east_lab_lobby - name = "East Lab Lobby" - icon_state = "green" - -/area/desert_dam/interior/lab_northeast/east_lab_west_hallway - name = "East Lab Western Hallway" - icon_state = "blue" - -/area/desert_dam/interior/lab_northeast/east_lab_central_hallway - name = "East Lab Central Hallway" - icon_state = "green" - -/area/desert_dam/interior/lab_northeast/east_lab_east_hallway - name = "East Lab East Hallway" - icon_state = "yellow" - -/area/desert_dam/interior/lab_northeast/east_lab_workshop - name = "East Lab Workshop" - icon_state = "ass_line" - -/area/desert_dam/interior/lab_northeast/east_lab_storage - name = "East Lab Storage " - icon_state = "storage" - -/area/desert_dam/interior/lab_northeast/east_lab_RD_office - name = "East Lab Research Director's Office" - icon_state = "yellow" - -/area/desert_dam/interior/lab_northeast/east_lab_maintenence - name = "East Lab Maintenence" - icon_state = "maintcentral" - -/area/desert_dam/interior/lab_northeast/east_lab_containment - name = "East Lab Containment" - icon_state = "purple" - -/area/desert_dam/interior/lab_northeast/east_lab_RND - name = "East Lab Research and Development" - icon_state = "purple" - -/area/desert_dam/interior/lab_northeast/east_lab_biology - name = "East Lab Biology" - icon_state = "purple" - -/area/desert_dam/interior/lab_northeast/east_lab_surgery - name = "East Lab Surgery" - icon_state = "red" - -/area/desert_dam/interior/lab_northeast/east_lab_excavation - name = "East Lab Excavation Prep" - icon_state = "blue" - -/area/desert_dam/interior/lab_northeast/east_lab_west_entrance - name = "East Lab West Entrance" - icon_state = "purple" - -/area/desert_dam/interior/lab_northeast/east_lab_east_entrance - name = "East Lab Entrance" - icon_state = "purple" - -/area/desert_dam/interior/lab_northeast/east_lab_security_checkpoint - name = "East Lab Security Checkpoint" - icon_state = "purple" - minimap_color = MINIMAP_AREA_SEC_CAVE - -/area/desert_dam/interior/lab_northeast/east_lab_security_office - name = "East Lab Security Office" - icon_state = "security" - minimap_color = MINIMAP_AREA_SEC_CAVE - -/area/desert_dam/interior/lab_northeast/east_lab_security_armory - name = "East Lab Armory" - icon_state = "armory" - minimap_color = MINIMAP_AREA_SEC_CAVE - -/area/desert_dam/interior/lab_northeast/east_lab_xenobiology - name = "East Lab Xenobiology" - icon_state = "red" - -//Dam Interior -/area/desert_dam/interior/dam_interior - minimap_color = MINIMAP_AREA_ENGI - outside = FALSE - -/area/desert_dam/interior/dam_interior/engine_room - name = "Engineering Generator Room" - icon_state = "yellow" - -/area/desert_dam/interior/dam_interior/control_room - name = "Engineering Control Room" - icon_state = "red" - -/area/desert_dam/interior/dam_interior/smes_main - name = "Engineering Main Substation" - icon_state = "purple" - -/area/desert_dam/interior/dam_interior/smes_backup - name = "Engineering Secondary Backup Substation" - icon_state = "green" - -/area/desert_dam/interior/dam_interior/engine_east_wing - name = "Engineering East Engine Wing" - icon_state = "blue-red" - -/area/desert_dam/interior/dam_interior/engine_west_wing - name = "Engineering West Engine Wing" - icon_state = "yellow" - -/area/desert_dam/interior/dam_interior/lobby - name = "Engineering Lobby" - icon_state = "purple" - -/area/desert_dam/interior/dam_interior/atmos_storage - name = "Engineering Atmospheric Storage" - icon_state = "purple" - -/area/desert_dam/interior/dam_interior/northwestern_tunnel - name = "Engineering Northwestern Tunnel" - icon_state = "green" - -/area/desert_dam/interior/dam_interior/north_tunnel - name = "Engineering Northern Tunnel" - icon_state = "blue-red" - minimap_color = MINIMAP_AREA_COLONY - -/area/desert_dam/interior/dam_interior/west_tunnel - name = "Engineering Western Tunnel" - icon_state = "yellow" - -/area/desert_dam/interior/dam_interior/central_tunnel - name = "Engineering Central Tunnel" - icon_state = "red" - minimap_color = MINIMAP_AREA_COLONY - -/area/desert_dam/interior/dam_interior/south_tunnel - name = "Engineering Southern Tunnel" - icon_state = "purple" - minimap_color = MINIMAP_AREA_ENGI - -/area/desert_dam/interior/dam_interior/northeastern_tunnel - name = "Engineering Northeastern Tunnel" - icon_state = "green" - minimap_color = MINIMAP_AREA_COLONY - -/area/desert_dam/interior/dam_interior/CE_office - name = "Engineering Chief Engineer's Office" - icon_state = "yellow" - -/area/desert_dam/interior/dam_interior/workshop - name = "Engineering Workshop" - icon_state = "purple" - -/area/desert_dam/interior/dam_interior/hanger - name = "Engineering Hangar" - icon_state = "hangar" - -/area/desert_dam/interior/dam_interior/hangar_storage - name = "Engineering Hangar Storage" - icon_state = "storage" - -/area/desert_dam/interior/dam_interior/auxilary_tool_storage - name = "Engineering Auxiliary Tool Storage" - icon_state = "red" - -/area/desert_dam/interior/dam_interior/primary_tool_storage - name = "Engineering Primary Tool Storage" - icon_state = "blue" - -/area/desert_dam/interior/dam_interior/tech_storage - name = "Engineering Secure Tech Storage" - icon_state = "dark" - -/area/desert_dam/interior/dam_interior/break_room - name = "Engineering Breakroom" - icon_state = "yellow" - -/area/desert_dam/interior/dam_interior/disposals - name = "Engineering Disposals" - icon_state = "disposal" - -/area/desert_dam/interior/dam_interior/western_dam_cave - name = "Engineering West Entrance" - icon_state = "red" - minimap_color = MINIMAP_AREA_CAVES - -/area/desert_dam/interior/dam_interior/office - name = "Engineering Office" - icon_state = "red" - -/area/desert_dam/interior/dam_interior - name = "Engineering" - icon_state = "" - -/area/desert_dam/interior/east_engineering - name = "Eastern Engineering" - icon_state = "yellow" - minimap_color = MINIMAP_AREA_ENGI - -/area/desert_dam/interior/dam_interior/north_tunnel_entrance - name = "Engineering North Tunnel Entrance" - icon_state = "yellow" - minimap_color = MINIMAP_AREA_SEC - -/area/desert_dam/interior/dam_interior/east_tunnel_entrance - name = "Engineering East Tunnel Entrance" - icon_state = "yellow" - minimap_color = MINIMAP_AREA_SEC - -/area/desert_dam/interior/dam_interior/south_tunnel_entrance - name = "Engineering South Tunnel Entrance" - icon_state = "red" - minimap_color = MINIMAP_AREA_SEC - -/area/desert_dam/interior/caves - name = "Caves" - ceiling = CEILING_DEEP_UNDERGROUND - outside = FALSE - icon_state = "red" - ambience = list('sound/ambience/ambimine.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambisin4.ogg') - minimap_color = MINIMAP_AREA_CAVES - -/area/desert_dam/interior/caves/northern_caves - name = "Northern Caves" - icon_state = "red" - -/area/desert_dam/interior/caves/east_caves - name = "Eastern Caves" - icon_state = "red" - -/area/desert_dam/interior/caves/central_caves - name = "Central Caves" - icon_state = "yellow" - -/area/desert_dam/interior/caves/central_caves/entrances/east_tunnel_entrance - name = "Eastern Central Tunnel Entrance" - icon_state = "red" - -/area/desert_dam/interior/caves/central_caves/entrances/south_tunnel_entrance - name = "Southern Central Tunnel Entrance" - icon_state = "red" - -/area/desert_dam/interior/caves/central_caves/entrances/west_tunnel_entrance - name = "Western Central Tunnel Entrance" - icon_state = "red" - -/area/desert_dam/interior/caves/temple - name = "Sand Temple" - icon_state = "green" - -//BUILDING -//areas not under rock -// ceiling = CEILING_METAL -/area/desert_dam/building - ceiling = CEILING_METAL - outside = FALSE -//Substations -/area/desert_dam/building/substation - name = "Substation" - icon = 'icons/turf/dam_areas.dmi' - minimap_color = MINIMAP_AREA_ENGI - -/area/desert_dam/building/substation/northwest - name = "Command Substation" - icon_state = "northewestern_ss" - -/area/desert_dam/building/substation/northeast - name = "Command Substation" - icon_state = "northeastern_ss" - -/area/desert_dam/building/substation/east - name = "Command Substation" - icon_state = "eastern_ss" - -/area/desert_dam/building/substation/southeast - name = "Command Substation" - icon_state = "southeastern_ss" - -/area/desert_dam/building/substation/central - name = "Command Substation" - icon_state = "central_ss" - -/area/desert_dam/building/substation/southwest - name = "Command Substation" - icon_state = "southwestern_ss" - -/area/desert_dam/building/substation/west - name = "Command Substation" - icon_state = "western_ss" - -//Administration -/area/desert_dam/building/administration - minimap_color = MINIMAP_AREA_COMMAND - -/area/desert_dam/building/administration/control_room - name = "Administration Landing Control Room" - icon_state = "yellow" - -/area/desert_dam/building/administration/lobby - name = "Administration Lobby" - icon_state = "green" - -/area/desert_dam/building/administration/hallway - name = "Administration Hallway" - icon_state = "purple" - -/area/desert_dam/building/administration/office - name = "Administration Office" - icon_state = "blue-red" - -/area/desert_dam/building/administration/overseer_office - name = "Administration Overseer's Office" - icon_state = "red" - -/area/desert_dam/building/administration/meetingrooom - name = "Administration Meeting Room" - icon_state = "yellow" - -/area/desert_dam/building/administration/archives - name = "Administration Archives" - icon_state = "green" - - -//Bar -/area/desert_dam/building/bar - minimap_color = MINIMAP_AREA_LIVING - -/area/desert_dam/building/bar/bar - name = "Bar" - icon_state = "yellow" - -/area/desert_dam/building/bar/backroom - name = "Bar Backroom" - icon_state = "green" - -/area/desert_dam/building/bar/bar_restroom - name = "Bar Restroom" - icon_state = "purple" - - -//Cafe -/area/desert_dam/building/cafeteria - minimap_color = MINIMAP_AREA_LIVING - -/area/desert_dam/building/cafeteria/cafeteria - name = "Cafeteria" - icon_state = "yellow" - -/area/desert_dam/building/cafeteria/backroom - name = "Cafeteria Backroom" - icon_state = "green" - -/area/desert_dam/building/cafeteria/restroom - name = "Cafeteria Restroom" - icon_state = "purple" - -/area/desert_dam/building/cafeteria/loading - name = "Cafeteria Loading Room" - icon_state = "blue-red" - -/area/desert_dam/building/cafeteria/cold_room - name = "Cafeteria Coldroom" - icon_state = "red" - - -//Dorms -/area/desert_dam/building/dorms - minimap_color = MINIMAP_AREA_LIVING - -/area/desert_dam/building/dorms/hallway_northwing - name = "Dormitory North Wing" - icon_state = "yellow" - -/area/desert_dam/building/dorms/hallway_westwing - name = "Dormitory West Wing" - icon_state = "green" - -/area/desert_dam/building/dorms/hallway_eastwing - name = "Dormitory East Wing" - icon_state = "purple" - -/area/desert_dam/building/dorms/restroom - name = "Dormitory Showers" - icon_state = "blue-red" - -/area/desert_dam/building/dorms/pool - name = "Dormitory Pool Room" - icon_state = "red" - - -//Medical -/area/desert_dam/building/medical - minimap_color = MINIMAP_AREA_MEDBAY - -/area/desert_dam/building/medical/garage - name = "Medical Garage" - icon_state = "garage" - -/area/desert_dam/building/medical/emergency_room - name = "Medical Emergency Room" - icon_state = "medbay" - -/area/desert_dam/building/medical/treatment_room - name = "Medical Treatment Room" - icon_state = "medbay2" - -/area/desert_dam/building/medical/lobby - name = "Medical Lobby" - icon_state = "medbay3" - -/area/desert_dam/building/medical/chemistry - name = "Medical Pharmacy" - icon_state = "medbay" - -/area/desert_dam/building/medical/west_wing_hallway - name = "Medical West Wing " - icon_state = "medbay2" - -/area/desert_dam/building/medical/north_wing_hallway - name = "Medical North Wing" - icon_state = "medbay3" - -/area/desert_dam/building/medical/east_wing_hallway - name = "Medical East Wing" - icon_state = "medbay" - -/area/desert_dam/building/medical/primary_storage - name = "Medical Primary Storage" - icon_state = "red" - -/area/desert_dam/building/medical/surgery_room_one - name = "Medical Surgery Room One" - icon_state = "yellow" - -/area/desert_dam/building/medical/surgery_room_two - name = "Medical Surgery Room Two" - icon_state = "purple" - -/area/desert_dam/building/medical/surgery_observation - name = "Medical Surgery Observation" - icon_state = "medbay2" - -/area/desert_dam/building/medical/morgue - name = "Medical Morgue" - icon_state = "blue" - -/area/desert_dam/building/medical/break_room - name = "Medical Breakroom" - icon_state = "medbay" - -/area/desert_dam/building/medical/CMO - name = "Medical CMO's Office" - icon_state = "CMO" - -/area/desert_dam/building/medical/office1 - name = "Medical Office One" - icon_state = "red" - -/area/desert_dam/building/medical/office2 - name = "Medical Office Two" - icon_state = "blue" - -/area/desert_dam/building/medical/patient_wing - name = "Medical Patient Wing" - icon_state = "medbay2" - -/area/desert_dam/building/medical/virology_wing - name = "Medical Virology Wing" - icon_state = "medbay3" - -/area/desert_dam/building/medical/virology_isolation - name = "Medical Virology Isolation" - icon_state = "medbay" - -/area/desert_dam/building/medical/medsecure - name = "Medical Virology Isolation" - icon_state = "red" - -/area/desert_dam/building/medical - name = "Medical" - icon_state = "medbay2" - - -//Warehouse -/area/desert_dam/building/warehouse - minimap_color = MINIMAP_AREA_REQ - -/area/desert_dam/building/warehouse/warehouse - name = "Warehouse" - icon_state = "yellow" - -/area/desert_dam/building/warehouse/loading - name = "Warehouse Loading Room" - icon_state = "red" - -/area/desert_dam/building/warehouse/breakroom - name = "Warehouse Breakroom" - icon_state = "green" - - - -//Hydroponics -/area/desert_dam/building/hydroponics - minimap_color = MINIMAP_AREA_LIVING - -/area/desert_dam/building/hydroponics/hydroponics - name = "Hydroponics" - icon_state = "hydro" - -/area/desert_dam/building/hydroponics/hydroponics_storage - name = "Hydroponics Storage" - icon_state = "green" - -/area/desert_dam/building/hydroponics/hydroponics_loading - name = "Hydroponics Loading Room" - icon_state = "garage" - -/area/desert_dam/building/hydroponics/hydroponics_breakroom - name = "Hydroponics Breakroom" - icon_state = "red" - - -//Telecoms -/area/desert_dam/building/telecommunication - name = "Telecommunications" - icon_state = "yellow" - minimap_color = MINIMAP_AREA_COMMAND - -//Water Treatment Plant 1 -/area/desert_dam/building/water_treatment_one - name = "Water Treatment One" - icon_state = "yellow" - minimap_color = MINIMAP_AREA_ENGI - -/area/desert_dam/building/water_treatment_one/lobby - name = "Water Treatment One Lobby" - icon_state = "red" - -/area/desert_dam/building/water_treatment_one/breakroom - name = "Water Treatment One Breakroom" - icon_state = "green" - -/area/desert_dam/building/water_treatment_one/garage - name = "Water Treatment One Garage" - icon_state = "garage" - -/area/desert_dam/building/water_treatment_one/sedimentation - name = "Water Treatment One Sedimentation" - icon_state = "blue" - -/area/desert_dam/building/water_treatment_one/equipment - name = "Water Treatment One Equipment Room" - icon_state = "red" - -/area/desert_dam/building/water_treatment_one/hallway - name = "Water Treatment One Hallway" - icon_state = "purple" - -/area/desert_dam/building/water_treatment_one/control_room - name = "Water Treatment One Control Room" - icon_state = "yellow" - -/area/desert_dam/building/water_treatment_one/purification - name = "Water Treatment One Purification" - icon_state = "green" - -/area/desert_dam/building/water_treatment_one/floodgate_control - name = "Water Treatment One Floodgate Control" - icon_state = "green" - -/area/desert_dam/building/water_treatment_one/floodgate_control/central - name = "Central Floodgate Control" - icon_state = "green" - -/area/desert_dam/building/water_treatment_one/floodgate_control/central2 - name = "Central Floodgate Control Storage" - icon_state = "green" - -//Water Treatment Plant 2 -/area/desert_dam/building/water_treatment_two - name = "Water Treatment Two" - icon_state = "yellow" - minimap_color = MINIMAP_AREA_ENGI - -/area/desert_dam/building/water_treatment_two/lobby - name = "Water Treatment Two Lobby" - icon_state = "red" - -/area/desert_dam/building/water_treatment_two/breakroom - name = "Water Treatment Two Breakroom" - icon_state = "green" - -/area/desert_dam/building/water_treatment_two/garage - name = "Water Treatment Two Garage" - icon_state = "garage" - -/area/desert_dam/building/water_treatment_two/sedimentation - name = "Water Treatment Two Sedimentation" - icon_state = "blue" - -/area/desert_dam/building/water_treatment_two/equipment - name = "Water Treatment Two Equipment" - icon_state = "red" - -/area/desert_dam/building/water_treatment_two/hallway - name = "Water Treatment Two Hallway" - icon_state = "purple" - -/area/desert_dam/building/water_treatment_two/control_room - name = "Water Treatment Two Control Room" - icon_state = "yellow" - -/area/desert_dam/building/water_treatment_two/purification - name = "Water Treatment Two Purification" - icon_state = "green" - -/area/desert_dam/building/water_treatment_two/floodgate_control - name = "Water Treatment Two Floodgate Control" - icon_state = "green" - - -//Library UNUSED -/* -/area/desert_dam/building/library/library - name = "Library" - icon_state = "library" -/area/desert_dam/building/library/restroom - name = "Library Restroom" - icon_state = "green" -/area/desert_dam/building/library/studyroom - name = "Library Study Room" - icon_state = "purple" -*/ - -//Security -/area/desert_dam/building/security - minimap_color = MINIMAP_AREA_SEC - -/area/desert_dam/building/security/prison - name = "Security Prison" - icon_state = "sec_prison" - -/area/desert_dam/building/security/marshals_office - name = "Security Marshal's Office" - icon_state = "sec_hos" - -/area/desert_dam/building/security/armory - name = "Security Armory" - icon_state = "armory" - -/area/desert_dam/building/security/warden - name = "Security Warden's Office" - icon_state = "Warden" - -/area/desert_dam/building/security/interrogation - name = "Security Interrogation" - icon_state = "interrogation" - -/area/desert_dam/building/security/backroom - name = "Security Interrogation" - icon_state = "sec_backroom" - -/area/desert_dam/building/security/observation - name = "Security Observation" - icon_state = "observatory" - -/area/desert_dam/building/security/detective - name = "Security Detective's Office" - icon_state = "detective" - -/area/desert_dam/building/security/office - name = "Security Office" - icon_state = "yellow" - -/area/desert_dam/building/security/lobby - name = "Security Lobby" - icon_state = "green" - -/area/desert_dam/building/security/northern_hallway - name = "Security North Hallway" - icon_state = "purple" - -/area/desert_dam/building/security/courtroom - name = "Security Courtroom" - icon_state = "courtroom" - -/area/desert_dam/building/security/evidence - name = "Security Evidence" - icon_state = "red" - -/area/desert_dam/building/security/holding - name = "Security Holding Room" - icon_state = "yellow" - -/area/desert_dam/building/security/southern_hallway - name = "Security South Hallway" - icon_state = "green" - -/area/desert_dam/building/security/deathrow - name = "Security Death Row" - icon_state = "cells_max_n" - -/area/desert_dam/building/security/execution_chamber - name = "Security Execution Chamber" - icon_state = "red" - -/area/desert_dam/building/security/staffroom - name = "Security Staffroom" - icon_state = "security" - -//Church -/area/desert_dam/building/church - name = "Church" - icon_state = "courtroom" - minimap_color = MINIMAP_AREA_LIVING - -//Mining area -/area/desert_dam/building/mining - minimap_color = MINIMAP_AREA_REQ - -/area/desert_dam/building/mining/workshop - name = "Mining Workshop" - icon_state = "yellow" - -/area/desert_dam/building/mining/workshop_foyer - name = "Mining Workshop Foyer" - icon_state = "purple" - -//Legacy Areas for mining - /* -/area/desert_dam/building/mining/garage - name = "Mining Garage" - icon_state = "garage" -/area/desert_dam/building/mining/boxing_room - name = "Mining Boxing Room" - icon_state = "red" -/area/desert_dam/building/mining/loading_room - name = "Mining Loading Bay" - icon_state = "yellow" -/area/desert_dam/building/mining/break_room - name = "Mining Breakroom" - icon_state = "purple" -/area/desert_dam/building/mining/locker_room - name = "Mining Locker Room" - icon_state = "green" -/area/desert_dam/building/mining/lobby - name = "Mining Lobby" - icon_state = "red" -/area/desert_dam/building/mining/front_desk - name = "Mining Front Desk" - icon_state = "green" -/area/desert_dam/building/mining/foremans_office - name = "Mining Foreman's Office" - icon_state = "yellow" -/area/desert_dam/building/mining/maintenance_north - name = "Mining Maintenance North" - icon_state = "dark160" -/area/desert_dam/building/mining/maintenance_east - name = "Mining Maintenance East" - icon_state = "dark128" -/area/desert_dam/building/mining/bunkhouse - name = "Mining Bunkhouse" - icon_state = "red" -/area/desert_dam/building/mining/construction_site - name = "Construction Site" - icon_state = "yellow" -*/ - - -//NorthWest Lab Buildings -/area/desert_dam/building/lab_northwest - minimap_color = MINIMAP_AREA_RESEARCH - -/area/desert_dam/building/lab_northwest/west_lab_robotics - name = "West Lab Robotics" - icon_state = "ass_line" - -/area/desert_dam/building/lab_northwest/west_lab_robotics_mechbay - name = "West Lab Mechbay" - icon_state = "purple" - -/area/desert_dam/building/lab_northwest/west_lab_east_hallway - name = "West Lab Hallway" - icon_state = "red" - -/area/desert_dam/building/lab_northwest/west_lab_west_hallway - name = "West Lab Hallway" - icon_state = "red" - -/area/desert_dam/building/lab_northwest/west_lab_maintenance - name = "West Lab Maintenance" - icon_state = "purple" - -/area/desert_dam/building/lab_northwest/west_lab_chemistry - name = "West Lab Chemistry" - icon_state = "yellow" - -/area/desert_dam/building/lab_northwest/west_lab_cafeteria - name = "West Lab Cafeteria" - icon_state = "blue" - -/area/desert_dam/building/lab_northwest/west_lab_kitchen - name = "West Lab Kitchen" - icon_state = "kitchen" - -/area/desert_dam/building/lab_northwest/west_lab_dormitory - name = "West Lab Dormitory" - icon_state = "red" - -/area/desert_dam/building/lab_northwest/west_lab_meeting_room - name = "West Lab Meeting Room" - icon_state = "purple" - -/area/desert_dam/building/lab_northwest/west_lab_xenoflora - name = "West Lab Xenoflora" - icon_state = "purple" - -/area/desert_dam/building/lab_northeast/checkpoint - name = "East Lab Checkpoint" - icon_state = "red" - -/area/desert_dam/building/lab_northeast/garage - name = "East Lab Garage" - icon_state = "garage" - - - -//EXTERIOR -//under open sky -/area/desert_dam/exterior - always_unpowered = TRUE - -/area/desert_dam/exterior/rock - name = "Rock" - icon_state = "cave" - -/area/desert_dam/exterior/landing - always_unpowered = FALSE - minimap_color = MINIMAP_AREA_LZ - -//Landing Pad for the Alamo. THIS IS NOT THE SHUTTLE AREA -/area/desert_dam/exterior/landing/landing_pad_one - name = "Airstrip Landing Pad" - icon_state = "landing_pad" - -/area/desert_dam/exterior/landing/landing_pad_one_external - name = "Airstrip Landing Valley" - icon_state = "landing_pad_ext" - - -//Landing Pad for the Normandy. THIS IS NOT THE SHUTTLE AREA -/area/desert_dam/exterior/landing/landing_pad_two - name = "Eastern Aerodrome Landing Pad" - icon_state = "landing_pad" - -/area/desert_dam/exterior/landing/landing_pad_two_external - name = "Eastern Landing Valley" - icon_state = "landing_pad_ext" - -//Landing Pad for the abandoned tradeship, not used for transit. THIS IS NOT THE SHUTTLE AREA -/area/desert_dam/exterior/landing/landing_pad_three - name = "Aerodrome Landing Pad" - icon_state = "landing_pad" - -/area/desert_dam/exterior/landing/landing_pad_three_external - name = "Aerodrome Landing Valley" - icon_state = "landing_pad_ext" - minimap_color = MINIMAP_AREA_COLONY - -//Valleys -//Near LZ -//TODO: incorporate valleys and substrations for floodlight coverage - -/area/desert_dam/exterior/valley - minimap_color = MINIMAP_AREA_COLONY - always_unpowered = FALSE - -/area/desert_dam/exterior/valley/valley_northwest - name = "Northwest Valley" - icon_state = "valley_north_west" - -/area/desert_dam/exterior/valley/valley_cargo - name = "Shipping Valley" - icon_state = "valley_south_west" - -/area/desert_dam/exterior/valley/valley_telecoms - name = "Telecomms Valley" - icon_state = "valley_west" - -/area/desert_dam/exterior/valley/tradeship - name = "NTT Jerry-Cabot" - icon_state = "dark160" - requires_power = FALSE - minimap_color = MINIMAP_AREA_SHIP - -//Away from LZ - -/area/desert_dam/exterior/valley/valley_labs - name = "Lab Valley" - icon_state = "valley_north" - -/area/desert_dam/exterior/valley/valley_mining - name = "Mining Valley" - icon_state = "valley_east" - -/area/desert_dam/exterior/valley/valley_civilian - name = "Civilian Valley" - icon_state = "valley_south_excv" - -/area/desert_dam/exterior/valley/valley_medical - name = "Medical Valley" - icon_state = "valley" - -/area/desert_dam/exterior/valley/valley_medical_south - name = "Southern Medical Valley" - icon_state = "valley" - -/area/desert_dam/exterior/valley/valley_hydro - name = "Hydro Valley" - icon_state = "valley" - -/area/desert_dam/exterior/valley/valley_crashsite - name = "Crash Site Valley" - icon_state = "yellow" - -/area/desert_dam/exterior/valley/north_valley_dam - name = "North Dam Valley" - icon_state = "valley" - -/area/desert_dam/exterior/valley/south_valley_dam - name = "South Dam Valley" - icon_state = "valley" - -/area/desert_dam/exterior/valley/bar_valley_dam - name = "Bar Valley" - icon_state = "yellow" - -/area/desert_dam/exterior/valley/valley_wilderness - name = "Wilderness Valley" - icon_state = "central" - - -//End of the river areas, no Next -/area/desert_dam/exterior/river/riverside_northwest - name = "Northwestern Riverbed" - icon_state = "bluenew" - -/area/desert_dam/exterior/river/riverside_central_north - name = "Northern Central Riverbed" - icon_state = "purple" - -/area/desert_dam/exterior/river/riverside_central_south - name = "Southern Central Riverbed" - icon_state = "purple" - -/area/desert_dam/exterior/river/riverside_south - name = "Southern Riverbed" - icon_state = "bluenew" - -/area/desert_dam/exterior/river/riverside_east - name = "Eastern Riverbed" - icon_state = "bluenew" - -/area/desert_dam/exterior/river/riverside_northeast - name = "Northeastern Riverbed" - icon_state = "bluenew" - -//The filtration plants - This area isn't for the WHOLE plant, but the areas that have water in them, so the water changes color as well. -/area/desert_dam/exterior/river/filtration_a - name = "Filtration Plant A" - -/area/desert_dam/exterior/river/filtration_b - name = "Filtration Plant B" - -//Areas that are rivers, but will not change because they're before the floodgates -/area/desert_dam/exterior/river_mouth/southern - name = "Southern River Mouth" - icon_state = "purple" - -/area/desert_dam/exterior/river_mouth/eastern - name = "Eastern River Mouth" - icon_state = "purple" - -/area/desert_dam/landing/console - name = "LZ1 'Admin'" - icon_state = "tcomsatcham" - requires_power = 0 - area_flags = NO_DROPPOD - -/area/desert_dam/landing/console2 - name = "LZ2 'Supply'" - icon_state = "tcomsatcham" - requires_power = 0 - area_flags = NO_DROPPOD - -//Transit Shuttle -/area/shuttle/tri_trans1/alpha - icon_state = "shuttle" - -/area/shuttle/tri_trans1/away - icon_state = "away1" - - -/area/shuttle/tri_trans2/alpha - icon_state = "shuttlered" - -/area/shuttle/tri_trans2/away - icon_state = "away2" - -/area/shuttle/tri_trans2/omega - icon_state = "shuttle2" - diff --git a/code/game/area/mainship.dm b/code/game/area/mainship.dm index 7ea34503b97b9..36e48c02f9c96 100644 --- a/code/game/area/mainship.dm +++ b/code/game/area/mainship.dm @@ -358,7 +358,9 @@ icon_state = "officerrnr" /area/mainship/medical + name = "\improper Medical Bay" minimap_color = MINIMAP_AREA_MEDBAY + icon_state = "medical" /area/mainship/medical/lower_medical name = "Medical Lower" @@ -527,6 +529,16 @@ icon_state = "cryo" minimap_color = MINIMAP_AREA_LIVING +/area/mainship/patrol_base/som/medical + name = "SOM Medical bay" + icon_state = "medical" + minimap_color = MINIMAP_AREA_MEDBAY + +/area/mainship/patrol_base/som/equipment_bay + name = "SOM Equipment bay" + icon_state = "req" + minimap_color = MINIMAP_AREA_REQ + /area/mainship/patrol_base/telecomms name = "Telecommunications" icon_state = "tcomms" diff --git a/code/game/area/oscaroutpost.dm b/code/game/area/oscaroutpost.dm index f787ea86a8157..2dbf1189c154b 100644 --- a/code/game/area/oscaroutpost.dm +++ b/code/game/area/oscaroutpost.dm @@ -84,6 +84,7 @@ name = "Oscar Outpost Fairgrounds" icon_state = "green" ceiling = CEILING_NONE + requires_power = FALSE /area/oscar_outpost/village/abandonedbase name = "Oscar Outpost Base Zeta" diff --git a/code/game/atoms/_atom.dm b/code/game/atoms/_atom.dm index 6fed5ac407926..c140b6c10d529 100644 --- a/code/game/atoms/_atom.dm +++ b/code/game/atoms/_atom.dm @@ -123,6 +123,9 @@ var/list/managed_vis_overlays ///The list of alternate appearances for this atom var/list/alternate_appearances + ///var containing our storage, see atom/proc/create_storage() + var/datum/storage/storage_datum + /* We actually care what this returns, since it can return different directives. @@ -135,6 +138,9 @@ directive is properly returned. if(reagents) QDEL_NULL(reagents) + if(storage_datum) + QDEL_NULL(storage_datum) + orbiters = null // The component is attached to us normaly and will be deleted elsewhere LAZYCLEARLIST(overlays) @@ -419,14 +425,15 @@ directive is properly returned. contents_explosion(severity, epicenter_dist, impact_range) SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, epicenter_dist, impact_range) -/atom/proc/fire_act() +///Effects of fire +/atom/proc/fire_act(burn_level) return ///Effects of lava. Return true where we want the lava to keep processing /atom/proc/lava_act() if(resistance_flags & INDESTRUCTIBLE) return FALSE - fire_act() + fire_act(LAVA_BURN_LEVEL) return TRUE /atom/proc/hitby(atom/movable/AM, speed = 5) @@ -447,16 +454,13 @@ directive is properly returned. /atom/proc/contents_explosion(severity) + SHOULD_CALL_PARENT(TRUE) + SEND_SIGNAL(src, COMSIG_CONTENTS_EX_ACT, severity) return //For handling the effects of explosions on contents that would not normally be effected - -///Fire effects from a burning turf. Burn level is the base fire damage being received. -/atom/proc/flamer_fire_act(burnlevel) - return - - //This proc is called on the location of an atom when the atom is Destroy()'d /atom/proc/handle_atom_del(atom/A) + SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ATOM_CONTENTS_DEL, A) @@ -846,9 +850,13 @@ directive is properly returned. // Stacks and storage redefined procs. /atom/proc/max_stack_merging(obj/item/stack/S) + SHOULD_CALL_PARENT(TRUE) + SEND_SIGNAL(src, ATOM_MAX_STACK_MERGING, S) return FALSE //But if they do, limit is not an issue. /atom/proc/recalculate_storage_space() + SHOULD_CALL_PARENT(TRUE) + SEND_SIGNAL(src, ATOM_RECALCULATE_STORAGE_SPACE) return //Nothing to see here. // Tool-specific behavior procs. To be overridden in subtypes. @@ -867,7 +875,7 @@ directive is properly returned. /atom/proc/screwdriver_act(mob/living/user, obj/item/I) - SEND_SIGNAL(src, COMSIG_ATOM_SCREWDRIVER_ACT, user, I) + return FALSE /atom/proc/wrench_act(mob/living/user, obj/item/I) return FALSE diff --git a/code/game/objects/effects/acid_hole.dm b/code/game/objects/effects/acid_hole.dm index 4c14af8cfd327..a07e9c2813cb4 100644 --- a/code/game/objects/effects/acid_hole.dm +++ b/code/game/objects/effects/acid_hole.dm @@ -37,11 +37,6 @@ holed_wall = null return ..() - -/obj/effect/acid_hole/fire_act() - return - - /obj/effect/acid_hole/MouseDrop_T(mob/M, mob/user) . = ..() if(!holed_wall) diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index 2f8eab382301f..4fabdd0e0ac04 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -87,7 +87,7 @@ ignite_fuel(I) log_attack("[key_name(user)] ignites [src] in fuel in [AREACOORD(user)]") -/obj/effect/decal/cleanable/liquid_fuel/flamer_fire_act(burnlevel) +/obj/effect/decal/cleanable/liquid_fuel/fire_act(burn_level) . = ..() ignite_fuel() diff --git a/code/game/objects/effects/effect_system/foam.dm b/code/game/objects/effects/effect_system/foam.dm index 2e427d98f5092..06d461d96714d 100644 --- a/code/game/objects/effects/effect_system/foam.dm +++ b/code/game/objects/effects/effect_system/foam.dm @@ -101,8 +101,8 @@ // foam disolves when heated // except metal foams -/obj/effect/particle_effect/foam/fire_act(exposed_temperature, exposed_volume) - if(!(foam_flags & METAL_FOAM|RAZOR_FOAM) && prob(max(0, exposed_temperature - 475))) +/obj/effect/particle_effect/foam/fire_act(burn_level) + if(!(foam_flags & METAL_FOAM|RAZOR_FOAM) && prob(min(burn_level * 3, 100))) kill_foam() /obj/effect/particle_effect/foam/can_slip() @@ -173,6 +173,6 @@ SMOOTH_GROUP_FOAM_WALL, ) -/obj/structure/foamedmetal/fire_act() //flamerwallhacks go BRRR - take_damage(10, BURN, FIRE) +/obj/structure/foamedmetal/fire_act(burn_level) + take_damage(burn_level, BURN, FIRE) diff --git a/code/game/objects/effects/effect_system/particle_effects.dm b/code/game/objects/effects/effect_system/particle_effects.dm index e05140985ec43..583a6d5b067e7 100644 --- a/code/game/objects/effects/effect_system/particle_effects.dm +++ b/code/game/objects/effects/effect_system/particle_effects.dm @@ -8,49 +8,6 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT allow_pass_flags = PASS_LOW_STRUCTURE|PASS_GRILLE|PASS_MOB - //Fire -/obj/effect/particle_effect/fire //Fire that ignites mobs and deletes itself after some time, but doesn't mess with atmos. Good fire flamethrowers and incendiary stuff. - name = "fire" - icon = 'icons/effects/fire.dmi' - icon_state = "3" - var/life = 0.5 //In seconds - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - - -/obj/effect/particle_effect/fire/Initialize(mapload, ...) - . = ..() - - if(!isturf(loc)) - return INITIALIZE_HINT_QDEL - - QDEL_IN(src, life SECONDS) - - var/static/list/connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_cross), - ) - AddElement(/datum/element/connect_loc, connections) - - setDir(pick(GLOB.cardinals)) - set_light(1, 3) - - for(var/mob/living/L in loc)//Mobs - L.fire_act() - for(var/obj/alien/weeds/W in loc)//Weeds - W.fire_act() - for(var/obj/alien/egg/E in loc)//Eggs - E.fire_act() - for(var/obj/structure/bed/nest/N in loc)//Nests - N.fire_act() - for(var/turf/open/floor/plating/ground/snow/S in loc)//Snow - S.fire_act() - -/obj/effect/particle_effect/fire/proc/on_cross(datum/source, mob/living/L, oldloc, oldlocs) - SIGNAL_HANDLER - if(isliving(L)) - L.fire_act() - - //End fire - /obj/effect/particle_effect/water name = "water" icon = 'icons/effects/effects.dmi' diff --git a/code/game/objects/effects/landmarks/gamemode/hvh_deploy_points.dm b/code/game/objects/effects/landmarks/gamemode/hvh_deploy_points.dm new file mode 100644 index 0000000000000..8deac9652bf67 --- /dev/null +++ b/code/game/objects/effects/landmarks/gamemode/hvh_deploy_points.dm @@ -0,0 +1,188 @@ +//Groundside landmarks that dictate where players deploy in hvh modes +#define PATROL_POINT_RAPPEL_EFFECT "patrol_point_rappel_effect" +#define RAPPEL_DURATION 0.6 SECONDS +#define RAPPEL_HEIGHT 128 + +/obj/effect/landmark/patrol_point + name = "Patrol exit point" + icon = 'icons/effects/campaign_effects.dmi' + icon_state = "blue_1" + ///ID to link with an associated start point + var/id = null + ///Faction this belongs to for minimap purposes + var/faction = FACTION_TERRAGOV + ///minimap icon state + var/minimap_icon = "patrol_1" + +/obj/effect/landmark/patrol_point/Initialize(mapload) + . = ..() + //adds the exit points to the glob, and the start points link to them in lateinit + GLOB.patrol_point_list += src + if(!(SSticker?.mode?.round_type_flags & MODE_TWO_HUMAN_FACTIONS)) + return + SSminimaps.add_marker(src, GLOB.faction_to_minimap_flag[faction], image('icons/UI_icons/map_blips.dmi', null, minimap_icon)) + +/obj/effect/landmark/patrol_point/Destroy() + GLOB.patrol_point_list -= src + return ..() + +/obj/effect/landmark/patrol_point/proc/do_deployment(atom/movable/movable_to_move, mob/living/user) + if(isliving(movable_to_move)) + var/mob/living_to_move = movable_to_move + new /atom/movable/effect/rappel_rope(loc) + living_to_move.trainteleport(loc) + add_spawn_protection(living_to_move) + else + movable_to_move.forceMove(loc) + + movable_to_move.add_filter(PATROL_POINT_RAPPEL_EFFECT, 2, drop_shadow_filter(y = -RAPPEL_HEIGHT, color = COLOR_TRANSPARENT_SHADOW, size = 4)) + var/shadow_filter = movable_to_move.get_filter(PATROL_POINT_RAPPEL_EFFECT) + + var/current_layer = movable_to_move.layer + movable_to_move.pixel_y += RAPPEL_HEIGHT + movable_to_move.layer = FLY_LAYER + + animate(movable_to_move, pixel_y = movable_to_move.pixel_y - RAPPEL_HEIGHT, time = RAPPEL_DURATION) + animate(shadow_filter, y = 0, size = 0.9, time = RAPPEL_DURATION, flags = ANIMATION_PARALLEL) + + addtimer(CALLBACK(src, PROC_REF(end_rappel), user, movable_to_move, current_layer), RAPPEL_DURATION) + + if(!user) + return + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HVH_DEPLOY_POINT_ACTIVATED, user) + +///Temporarily applies godmode to prevent spawn camping +/obj/effect/landmark/patrol_point/proc/add_spawn_protection(mob/living/user) + user.ImmobilizeNoChain(RAPPEL_DURATION) //looks weird if they can move while rappeling + user.status_flags |= GODMODE + addtimer(CALLBACK(src, PROC_REF(remove_spawn_protection), user), 10 SECONDS) + +///Ends the rappel effects +/obj/effect/landmark/patrol_point/proc/end_rappel(mob/living/user, atom/movable/movable_to_move, original_layer) + movable_to_move.remove_filter(PATROL_POINT_RAPPEL_EFFECT) + movable_to_move.layer = original_layer + SEND_SIGNAL(movable_to_move, COMSIG_MOVABLE_PATROL_DEPLOYED, TRUE, 1.5, 2) + if(ismecha(movable_to_move)) + new /obj/effect/temp_visual/rappel_dust(loc, 3) + playsound(loc, 'sound/effects/behemoth/behemoth_stomp.ogg', 40, TRUE) + shake_camera(user, 0.2 SECONDS, 0.5) + +///Removes spawn protection godmode +/obj/effect/landmark/patrol_point/proc/remove_spawn_protection(mob/user) + user.status_flags &= ~GODMODE + +/obj/effect/landmark/patrol_point/tgmc_11 + name = "TGMC exit point 11" + id = "TGMC_11" + +/obj/effect/landmark/patrol_point/tgmc_12 + name = "TGMC exit point 12" + id = "TGMC_12" + +/obj/effect/landmark/patrol_point/tgmc_13 + name = "TGMC exit point 13" + id = "TGMC_13" + +/obj/effect/landmark/patrol_point/tgmc_14 + name = "TGMC exit point 14" + id = "TGMC_14" + +/obj/effect/landmark/patrol_point/tgmc_21 + name = "TGMC exit point 21" + id = "TGMC_21" + icon_state = "blue_2" + minimap_icon = "patrol_2" + +/obj/effect/landmark/patrol_point/tgmc_22 + name = "TGMC exit point 22" + id = "TGMC_22" + icon_state = "blue_2" + minimap_icon = "patrol_2" + +/obj/effect/landmark/patrol_point/tgmc_23 + name = "TGMC exit point 23" + id = "TGMC_23" + icon_state = "blue_2" + minimap_icon = "patrol_2" + +/obj/effect/landmark/patrol_point/tgmc_24 + name = "TGMC exit point 24" + id = "TGMC_24" + icon_state = "blue_2" + minimap_icon = "patrol_2" + +/obj/effect/landmark/patrol_point/som + faction = FACTION_SOM + icon_state = "red_1" + minimap_icon = "som_patrol_1" + +/obj/effect/landmark/patrol_point/som/som_11 + name = "SOM exit point 11" + id = "SOM_11" + +/obj/effect/landmark/patrol_point/som/som_12 + name = "SOM exit point 12" + id = "SOM_12" + +/obj/effect/landmark/patrol_point/som/som_13 + name = "SOM exit point 13" + id = "SOM_13" + +/obj/effect/landmark/patrol_point/som/som_14 + name = "SOM exit point 14" + id = "SOM_14" + +/obj/effect/landmark/patrol_point/som/som_21 + name = "SOM exit point 21" + id = "SOM_21" + icon_state = "red_2" + minimap_icon = "som_patrol_2" + +/obj/effect/landmark/patrol_point/som/som_22 + name = "SOM exit point 22" + id = "SOM_22" + icon_state = "red_2" + minimap_icon = "som_patrol_2" + +/obj/effect/landmark/patrol_point/som/som_23 + name = "SOM exit point 23" + id = "SOM_23" + icon_state = "red_2" + minimap_icon = "som_patrol_2" + +/obj/effect/landmark/patrol_point/som/som_24 + name = "SOM exit point 24" + id = "SOM_24" + icon_state = "red_2" + minimap_icon = "som_patrol_2" + +/atom/movable/effect/rappel_rope + name = "rope" + icon = 'icons/Marine/mainship_props.dmi' + icon_state = "rope" + layer = ABOVE_MOB_LAYER + anchored = TRUE + resistance_flags = RESIST_ALL + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +//Rope animation for standard deploy points +/atom/movable/effect/rappel_rope/Initialize(mapload) + . = ..() + playsound(loc, 'sound/effects/rappel.ogg', 50, TRUE, falloff = 2) + playsound(loc, 'sound/effects/tadpolehovering.ogg', 100, TRUE, falloff = 2.5) + balloon_alert_to_viewers("You see a dropship fly overhead and begin dropping ropes!") + ropeanimation() + +///Starts the rope animation +/atom/movable/effect/rappel_rope/proc/ropeanimation() + flick("rope_deploy", src) + addtimer(CALLBACK(src, PROC_REF(ropeanimation_stop)), 2 SECONDS) + +///End the animation and qdels +/atom/movable/effect/rappel_rope/proc/ropeanimation_stop() + flick("rope_up", src) + QDEL_IN(src, 5) + +#undef PATROL_POINT_RAPPEL_EFFECT +#undef RAPPEL_DURATION +#undef RAPPEL_HEIGHT diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 63136df51e9ab..b946a2216ec7c 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -463,104 +463,6 @@ name = "Marine spawner landmark" spawns = "marine" -//Combat patrol spawn in spots -/obj/effect/landmark/patrol_point - name = "Patrol exit point" - ///ID to link with an associated start point - var/id = null - ///Faction this belongs to for minimap purposes - var/faction = FACTION_TERRAGOV - ///minimap icon state - var/minimap_icon = "patrol_1" - -/obj/effect/landmark/patrol_point/Initialize(mapload) - . = ..() - //adds the exit points to the glob, and the start points link to them in lateinit - GLOB.patrol_point_list += src - if(!(SSticker?.mode?.round_type_flags & MODE_TWO_HUMAN_FACTIONS)) - return - SSminimaps.add_marker(src, GLOB.faction_to_minimap_flag[faction], image('icons/UI_icons/map_blips.dmi', null, minimap_icon)) - -/obj/effect/landmark/patrol_point/Destroy() - GLOB.patrol_point_list -= src - return ..() - -/obj/effect/landmark/patrol_point/tgmc_11 - name = "TGMC exit point 11" - id = "TGMC_11" - -/obj/effect/landmark/patrol_point/tgmc_12 - name = "TGMC exit point 12" - id = "TGMC_12" - -/obj/effect/landmark/patrol_point/tgmc_13 - name = "TGMC exit point 13" - id = "TGMC_13" - -/obj/effect/landmark/patrol_point/tgmc_14 - name = "TGMC exit point 14" - id = "TGMC_14" - -/obj/effect/landmark/patrol_point/tgmc_21 - name = "TGMC exit point 21" - id = "TGMC_21" - minimap_icon = "patrol_2" - -/obj/effect/landmark/patrol_point/tgmc_22 - name = "TGMC exit point 22" - id = "TGMC_22" - minimap_icon = "patrol_2" - -/obj/effect/landmark/patrol_point/tgmc_23 - name = "TGMC exit point 23" - id = "TGMC_23" - minimap_icon = "patrol_2" - -/obj/effect/landmark/patrol_point/tgmc_24 - name = "TGMC exit point 24" - id = "TGMC_24" - minimap_icon = "patrol_2" - -/obj/effect/landmark/patrol_point/som - faction = FACTION_SOM - minimap_icon = "som_patrol_1" - -/obj/effect/landmark/patrol_point/som/som_11 - name = "SOM exit point 11" - id = "SOM_11" - -/obj/effect/landmark/patrol_point/som/som_12 - name = "SOM exit point 12" - id = "SOM_12" - -/obj/effect/landmark/patrol_point/som/som_13 - name = "SOM exit point 13" - id = "SOM_13" - -/obj/effect/landmark/patrol_point/som/som_14 - name = "SOM exit point 14" - id = "SOM_14" - -/obj/effect/landmark/patrol_point/som/som_21 - name = "SOM exit point 21" - id = "SOM_21" - minimap_icon = "som_patrol_2" - -/obj/effect/landmark/patrol_point/som/som_22 - name = "SOM exit point 22" - id = "SOM_22" - minimap_icon = "som_patrol_2" - -/obj/effect/landmark/patrol_point/som/som_23 - name = "SOM exit point 23" - id = "SOM_23" - minimap_icon = "som_patrol_2" - -/obj/effect/landmark/patrol_point/som/som_24 - name = "SOM exit point 24" - id = "SOM_24" - minimap_icon = "som_patrol_2" - /obj/effect/landmark/eord_roomba name = "EORD roomba spawn point" diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index cfb06dbc71570..8ecfca8a72282 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -258,16 +258,16 @@ if(ishuman(user)) . += span_danger("It's a laser to designate CAS targets, get away from it!") -/obj/effect/overlay/temp/laser_target/OB //This is a subtype of CAS so that CIC gets cameras on the lase +/obj/effect/overlay/temp/laser_target/ob //This is a subtype of CAS so that CIC gets cameras on the lase icon_state = "laser_target2" lasertype = LASER_TYPE_OB -/obj/effect/overlay/temp/laser_target/OB/Initialize(mapload, effect_duration, named, assigned_squad) +/obj/effect/overlay/temp/laser_target/ob/Initialize(mapload, effect_duration, named, assigned_squad) . = ..() linked_cam = new(src, name) GLOB.active_laser_targets += src -/obj/effect/overlay/temp/laser_target/OB/Destroy() +/obj/effect/overlay/temp/laser_target/ob/Destroy() GLOB.active_laser_targets -= src return ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 54d26cea5460f..0221743ffc878 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -149,7 +149,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan /obj/item/Initialize(mapload) - if(species_exception) species_exception = string_list(species_exception) if(length(colorable_colors)) @@ -159,6 +158,9 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan . = ..() + if(loc?.storage_datum) + on_enter_storage() + for(var/path in actions_types) new path(src) if(w_class <= 3) //pulling small items doesn't slow you down much @@ -262,9 +264,9 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan set_throwing(FALSE) - if(istype(loc, /obj/item/storage)) - var/obj/item/storage/S = loc - if(!S.remove_from_storage(src, user.loc, user)) + if(item_flags & IN_STORAGE) + var/datum/storage/current_storage = loc.storage_datum + if(!current_storage.remove_from_storage(src, user.loc, user)) return if(loc == user && !user.temporarilyRemoveItemFromInventory(src)) @@ -288,23 +290,23 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan // Due to storage type consolidation this should get used more now. // I have cleaned it up a little, but it could probably use more. -Sayu /obj/item/attackby(obj/item/I, mob/user, params) - . = ..() - if(.) - return - if(istype(I, /obj/item/facepaint) && colorable_allowed != NONE) color_item(I, user) - return + return TRUE + + . = ..() + if(.) + return TRUE if(!istype(I, /obj/item/storage)) return var/obj/item/storage/S = I - if(!S.use_to_pickup || !isturf(loc)) + if(!S.storage_datum.use_to_pickup || !isturf(loc)) return - if(S.collection_mode) //Mode is set to collect all items on a tile and we clicked on a valid one. + if(S.storage_datum.collection_mode) //Mode is set to collect all items on a tile and we clicked on a valid one. var/list/rejections = list() var/success = FALSE var/failure = FALSE @@ -312,12 +314,12 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan for(var/obj/item/IM in loc) if(IM.type in rejections) // To limit bag spamming: any given type only complains once continue - if(!S.can_be_inserted(IM)) // Note can_be_inserted still makes noise when the answer is no + if(!S.storage_datum.can_be_inserted(IM, user)) // Note can_be_inserted still makes noise when the answer is no rejections += IM.type // therefore full bags are still a little spammy failure = TRUE continue success = TRUE - S.handle_item_insertion(IM, TRUE, user) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + S.storage_datum.handle_item_insertion(IM, TRUE, user) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. if(success && !failure) to_chat(user, span_notice("You put everything in [S].")) else if(success) @@ -325,18 +327,17 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan else to_chat(user, span_notice("You fail to pick anything up with [S].")) - else if(S.can_be_inserted(src)) - S.handle_item_insertion(src, FALSE, user) - + else if(S.storage_datum.can_be_inserted(src, user)) + S.storage_datum.handle_item_insertion(src, FALSE, user) /obj/item/attackby_alternate(obj/item/I, mob/user, params) + if(istype(I, /obj/item/facepaint)) + alternate_color_item(I, user) + return TRUE + . = ..() if(.) - return - if(!istype(I, /obj/item/facepaint)) - return - alternate_color_item(I, user) - + return TRUE /obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) return ITALICS | REDUCE_RANGE @@ -392,11 +393,13 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan ///called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /obj/item/proc/on_exit_storage(obj/item/storage/S as obj) + item_flags &= ~IN_STORAGE return ///called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. /obj/item/proc/on_enter_storage(obj/item/storage/S as obj) + item_flags |= IN_STORAGE return @@ -673,23 +676,27 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan if(!selected_slot) return FALSE - var/obj/item/storage/storage_item + var/datum/storage/current_storage_datum + + if(isdatumstorage(selected_slot)) + current_storage_datum = selected_slot - if(isstorage(selected_slot)) - storage_item = selected_slot + else if(selected_slot.storage_datum) + current_storage_datum = selected_slot.storage_datum else if(isclothing(selected_slot)) var/obj/item/clothing/selected_clothing = selected_slot - for(var/attachment_slot in selected_clothing.attachments_by_slot) - if(ismodulararmorstoragemodule(selected_clothing.attachments_by_slot[attachment_slot])) - var/obj/item/armor_module/storage/storage_attachment = selected_clothing.attachments_by_slot[attachment_slot] - storage_item = storage_attachment.storage - break + for(var/key AS in selected_clothing.attachments_by_slot) + var/atom/attachment = selected_clothing.attachments_by_slot[key] + if(!attachment?.storage_datum) + continue + current_storage_datum = attachment.storage_datum + break - if(!storage_item) + if(!current_storage_datum) return FALSE - return storage_item.can_be_inserted(src, warning) + return current_storage_datum.can_be_inserted(src, user, warning) /// Checks whether the item can be unequipped from owner by stripper. Generates a message on failure and returns TRUE/FALSE /obj/item/proc/canStrip(mob/stripper, mob/owner) @@ -1401,11 +1408,11 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. ///Called by vendors when vending an item. Allows the item to specify what happens when it is given to the player. /obj/item/proc/on_vend(mob/user, faction, fill_container = FALSE, auto_equip = FALSE) //Put item into player's currently open storage - if (fill_container && user.s_active && user.s_active.can_be_inserted(src, FALSE)) + if(fill_container && user.s_active && user.s_active.can_be_inserted(src, user, FALSE)) user.s_active.handle_item_insertion(src, FALSE, user) return //Equip item onto player - if (auto_equip && vendor_equip(user)) + if(auto_equip && vendor_equip(user)) return //Otherwise fall back to putting item in player's hand if(user.put_in_any_hand_if_possible(src, warning = FALSE)) diff --git a/code/game/objects/items/autopsy_scanner.dm b/code/game/objects/items/autopsy_scanner.dm index 07ba8d87c6908..646b4c7241831 100644 --- a/code/game/objects/items/autopsy_scanner.dm +++ b/code/game/objects/items/autopsy_scanner.dm @@ -1,6 +1,7 @@ /obj/item/autopsy_scanner name = "autopsy scanner" desc = "Extracts information on wounds." + icon = 'icons/obj/items/surgery_tools.dmi' icon_state = "autopsy_scanner" atom_flags = CONDUCT w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm index 1058e0173ede2..ec600086e3bf4 100644 --- a/code/game/objects/items/binoculars.dm +++ b/code/game/objects/items/binoculars.dm @@ -276,7 +276,7 @@ if(!targ_area) to_chat(user, "[icon2html(src, user)] [span_warning("No target detected!")]") else - var/obj/effect/overlay/temp/laser_target/OB/OBL = new (TU, 0, laz_name, S) + var/obj/effect/overlay/temp/laser_target/ob/OBL = new (TU, 0, laz_name, S) laser = OBL playsound(src, 'sound/effects/binoctarget.ogg', 35) if(!do_after(user, 15 SECONDS, NONE, user, BUSY_ICON_GENERIC)) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 0b802f8bdf236..2cc937f5b44e8 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -228,10 +228,10 @@ balloon_alert(bodybag_occupant, "[proj] jolts you out of the bag") open() -/obj/structure/closet/bodybag/flamer_fire_act(burnlevel) +/obj/structure/closet/bodybag/fire_act(burn_level) if(!opened && bodybag_occupant) balloon_alert(bodybag_occupant, "The fire forces you out") - bodybag_occupant.flamer_fire_act(burnlevel) + bodybag_occupant.fire_act(burn_level) open() /obj/structure/closet/bodybag/ex_act(severity) @@ -334,7 +334,7 @@ /obj/structure/closet/bodybag/cryobag/examine(mob/living/user) . = ..() - var/mob/living/carbon/human/occupant = bodybag_occupant + var/mob/living/carbon/human/occupant = bodybag_occupant if(!ishuman(occupant)) return if(!hasHUD(user,"medical")) @@ -361,7 +361,7 @@ . += span_scanner("Patient have [timer] seconds left before DNR") else . += span_scanner("Patient have [timer] seconds left before DNR") - + /obj/structure/closet/bodybag/cryobag/Topic(href, href_list) . = ..() diff --git a/code/game/objects/items/embedding.dm b/code/game/objects/items/embedding.dm index 02f2afb9b2a10..50d763020b0ae 100644 --- a/code/game/objects/items/embedding.dm +++ b/code/game/objects/items/embedding.dm @@ -103,12 +103,12 @@ return //People can safely move inside a vehicle or on a roller bed/chair. var/embedded_thing = carrier.embedded_objects[src] if(embedded_thing == carrier) - //carbon stuff - else if(istype(embedded_thing, /datum/limb)) - var/datum/limb/limb_loc = embedded_thing - limb_loc.process_embedded(src) - else + return + if(!istype(embedded_thing, /datum/limb)) CRASH("[src] called embedded_on_carrier_move for [carrier] with mismatching embedded_object: [.]") + var/datum/limb/limb_loc = embedded_thing + limb_loc.process_embedded(src) + /obj/item/proc/embedded_on_limb_destruction(datum/limb/source) diff --git a/code/game/objects/items/explosives/grenades/flares.dm b/code/game/objects/items/explosives/grenades/flares.dm index 6105a0171df89..7ce8c9a876a6c 100644 --- a/code/game/objects/items/explosives/grenades/flares.dm +++ b/code/game/objects/items/explosives/grenades/flares.dm @@ -23,7 +23,7 @@ . = ..() fuel = rand(lower_fuel_limit, upper_fuel_limit) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds. -/obj/item/explosive/grenade/flare/flamer_fire_act(burnlevel) +/obj/item/explosive/grenade/flare/fire_act(burn_level) if(!fuel) //it's out of fuel, an empty shell. return if(!active) diff --git a/code/game/objects/items/explosives/grenades/grenade.dm b/code/game/objects/items/explosives/grenades/grenade.dm index 6a9c1c2db90e1..b8f360f1a80a4 100644 --- a/code/game/objects/items/explosives/grenades/grenade.dm +++ b/code/game/objects/items/explosives/grenades/grenade.dm @@ -96,7 +96,7 @@ explosion(loc, light_impact_range = src.light_impact_range, weak_impact_range = src.weak_impact_range) qdel(src) -/obj/item/explosive/grenade/flamer_fire_act(burnlevel) +/obj/item/explosive/grenade/fire_act(burn_level) activate() /obj/item/explosive/grenade/attack_hand(mob/living/user) diff --git a/code/game/objects/items/explosives/grenades/smoke_grenades.dm b/code/game/objects/items/explosives/grenades/smoke_grenades.dm index 2b3d2a8a2a9df..48a4cef26a047 100644 --- a/code/game/objects/items/explosives/grenades/smoke_grenades.dm +++ b/code/game/objects/items/explosives/grenades/smoke_grenades.dm @@ -75,6 +75,12 @@ smoke_duration = 11 smokeradius = 7 +/obj/item/explosive/grenade/smokebomb/cloak/som + name = "\improper S30-C smoke grenade" + desc = "A sophisticated version of the S30-S with a slighty improved smoke screen payload. It's set to detonate in 2 seconds." + icon_state = "grenade_cloak_som" + item_state = "grenade_cloak_som" + /obj/item/explosive/grenade/smokebomb/cloak/ags name = "\improper AGLS-37 SCDP smoke grenade" desc = "A small tiny smart grenade, it is about to blow up in your face, unless you found it inert. Otherwise a pretty normal grenade, other than it is somehow in a primeable state." diff --git a/code/game/objects/items/explosives/grenades/training_grenade.dm b/code/game/objects/items/explosives/grenades/training_grenade.dm index 0a92cee9b4755..b7ede5b4fdc36 100644 --- a/code/game/objects/items/explosives/grenades/training_grenade.dm +++ b/code/game/objects/items/explosives/grenades/training_grenade.dm @@ -15,5 +15,5 @@ det_time = initial(det_time) //these can be modified when fired by UGL throw_range = initial(throw_range) -/obj/item/explosive/grenade/training/flamer_fire_act(burnlevel) +/obj/item/explosive/grenade/training/fire_act(burn_level) return diff --git a/code/game/objects/items/explosives/mine.dm b/code/game/objects/items/explosives/mine.dm index 811c55cc4d88c..1312ea8a35867 100644 --- a/code/game/objects/items/explosives/mine.dm +++ b/code/game/objects/items/explosives/mine.dm @@ -58,7 +58,7 @@ Stepping directly on the mine will also blow it up INVOKE_ASYNC(src, PROC_REF(trigger_explosion)) /// Flamer fire will cause mines to trigger their explosion -/obj/item/explosive/mine/flamer_fire_act(burnlevel) +/obj/item/explosive/mine/fire_act(burn_level) . = ..() INVOKE_ASYNC(src, PROC_REF(trigger_explosion)) @@ -273,5 +273,5 @@ Stepping directly on the mine will also blow it up return INVOKE_ASYNC(src, PROC_REF(trigger_explosion)) -/obj/item/explosive/mine/anti_tank/flamer_fire_act(burnlevel) +/obj/item/explosive/mine/anti_tank/fire_act(burn_level) return //its highly exploitable if fire detonates these diff --git a/code/game/objects/items/loot_box.dm b/code/game/objects/items/loot_box.dm index 38a6e668edabd..4a3aa0f585e55 100644 --- a/code/game/objects/items/loot_box.dm +++ b/code/game/objects/items/loot_box.dm @@ -445,12 +445,14 @@ desc = "A large case containing some kind of equipment. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." icon_state = "smartgun_case" w_class = WEIGHT_CLASS_HUGE - storage_slots = 21 - can_hold = list() // Holds absolutely nothing after you take it out. - //foldable = null /obj/item/storage/box/crate/loot/Initialize(mapload) . = ..() + storage_datum.storage_slots = 100 + storage_datum.max_storage_space = 100 + storage_datum.max_w_class = 0 //1 way storage + +/obj/item/storage/box/crate/loot/PopulateContents() new /obj/item/weapon/banhammer(src) // Crate for lootboxes. Use for large items. @@ -463,13 +465,12 @@ icon_opened = "open_basic" icon_closed = "closed_basic" -/obj/structure/closet/crate/loot/Initialize(mapload) - . = ..() +/obj/structure/closet/crate/loot/PopulateContents() new /obj/item/weapon/banhammer(src) // Common -/obj/item/storage/box/crate/loot/autosniper_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/autosniper_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/rifle/standard_autosniper(src) new /obj/item/weapon/gun/rifle/standard_autosniper(src) @@ -485,7 +486,7 @@ new /obj/item/ammo_magazine/rifle/autosniper(src) new /obj/item/ammo_magazine/rifle/autosniper(src) //180 total and common, fine considering 3 autos is really strong. -/obj/item/storage/box/crate/loot/thermobaric_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/thermobaric_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/launcher/rocket/m57a4/t57(src) new /obj/item/weapon/gun/launcher/rocket/m57a4/t57(src) @@ -501,13 +502,13 @@ new /obj/item/ammo_magazine/rocket/m57a4(src) new /obj/item/ammo_magazine/rocket/m57a4(src) // three launchers and 10 arrays. Common. 200. -/obj/item/storage/box/crate/loot/tesla_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/tesla_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/energy/lasgun/lasrifle/tesla(src) new /obj/item/weapon/gun/energy/lasgun/lasrifle/tesla(src) new /obj/item/weapon/gun/energy/lasgun/lasrifle/tesla(src) // 180 and nothing else. Have fun. -/obj/item/storage/box/crate/loot/tx54_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/tx54_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/rifle/tx54(src) new /obj/item/weapon/gun/rifle/tx54(src) @@ -527,7 +528,7 @@ // Uncommon -/obj/item/storage/box/crate/loot/materials_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/materials_pack/PopulateContents() . = ..() new /obj/item/stack/sheet/plasteel/large_stack(src) new /obj/item/stack/sheet/plasteel/large_stack(src) @@ -544,7 +545,7 @@ new /obj/item/tool/shovel/etool(src) new /obj/item/tool/shovel/etool(src) -/obj/item/storage/box/crate/loot/recoilless_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/recoilless_pack/PopulateContents() . = ..() new /obj/item/storage/holster/backholster/rpg/full(src) new /obj/item/storage/holster/backholster/rpg/full(src) @@ -556,7 +557,7 @@ new /obj/item/ammo_magazine/rocket/recoilless/heat(src) new /obj/item/ammo_magazine/rocket/recoilless/heat(src) -/obj/item/storage/box/crate/loot/railgun_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/railgun_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/rifle/railgun(src) new /obj/item/weapon/gun/rifle/railgun(src) @@ -574,7 +575,7 @@ new /obj/item/ammo_magazine/railgun(src) new /obj/item/ammo_magazine/railgun(src) -/obj/item/storage/box/crate/loot/scoutrifle_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/scoutrifle_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/rifle/tx8(src) new /obj/item/weapon/gun/rifle/tx8(src) @@ -593,7 +594,7 @@ // Rares -/obj/item/storage/box/crate/loot/mortar_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/mortar_pack/PopulateContents() . = ..() new /obj/item/mortar_kit(src) new /obj/item/mortar_kit(src) @@ -601,7 +602,7 @@ new /obj/item/mortar_kit(src) new /obj/item/mortar_kit(src) -/obj/structure/closet/crate/loot/howitzer_pack/Initialize(mapload) +/obj/structure/closet/crate/loot/howitzer_pack/PopulateContents() . = ..() new /obj/item/mortar_kit/howitzer(src) new /obj/item/mortar_kit/howitzer(src) @@ -618,12 +619,12 @@ new /obj/item/mortal_shell/howitzer/white_phos(src) new /obj/item/mortal_shell/howitzer/white_phos(src) -/obj/item/storage/box/crate/loot/hsg_102_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/hsg_102_pack/PopulateContents() . = ..() new /obj/item/storage/box/hsg_102(src) new /obj/item/storage/box/hsg_102(src) -/obj/item/storage/box/crate/loot/agl_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/agl_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/standard_agls(src) new /obj/item/ammo_magazine/standard_agls(src) @@ -635,7 +636,7 @@ new /obj/item/ammo_magazine/standard_agls/fragmentation(src) new /obj/item/ammo_magazine/standard_agls/fragmentation(src) -/obj/item/storage/box/crate/loot/sentry_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/sentry_pack/PopulateContents() . = ..() new /obj/item/storage/box/crate/sentry(src) new /obj/item/storage/box/crate/sentry(src) @@ -644,7 +645,7 @@ // Legendaries -/obj/item/storage/box/crate/loot/operator_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/operator_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/rifle/m412/elite new /obj/item/ammo_magazine/rifle @@ -653,7 +654,7 @@ new /obj/item/ammo_magazine/rifle new /obj/item/clothing/glasses/night/tx8 -/obj/item/storage/box/crate/loot/b18classic_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/b18classic_pack/PopulateContents() . = ..() new /obj/item/clothing/suit/storage/marine/specialist(src) new /obj/item/clothing/head/helmet/marine/specialist(src) @@ -662,7 +663,7 @@ new /obj/item/ammo_magazine/minigun_powerpack(src) new /obj/item/ammo_magazine/minigun_powerpack(src) -/obj/item/storage/box/crate/loot/heavy_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/heavy_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/minigun(src) new /obj/item/weapon/gun/minigun(src) @@ -671,7 +672,7 @@ new /obj/item/armor_module/module/tyr_extra_armor(src) new /obj/item/armor_module/module/tyr_extra_armor(src) -/obj/item/storage/box/crate/loot/sadarclassic_pack/Initialize(mapload) +/obj/item/storage/box/crate/loot/sadarclassic_pack/PopulateContents() . = ..() new /obj/item/weapon/gun/launcher/rocket/sadar(src) new /obj/item/storage/backpack/marine/satchel/scout_cloak(src) diff --git a/code/game/objects/items/marine_gear.dm b/code/game/objects/items/marine_gear.dm index f17e9eb1bfb98..4f30414d58839 100644 --- a/code/game/objects/items/marine_gear.dm +++ b/code/game/objects/items/marine_gear.dm @@ -218,14 +218,16 @@ name = "\improper Nanotrasen brand MRE" desc = "A prepackaged, long-lasting food box from Nanotrasen Industries.\nOn the box is the Nanotrasen logo, with a slogan surrounding it: \nNANOTRASEN. BUILDING BETTER LUNCHES" icon_state = "mre2" - can_hold = list(/obj/item/reagent_containers/food/snacks) w_class = WEIGHT_CLASS_BULKY /obj/item/storage/box/nt_mre/Initialize(mapload, ...) . = ..() + storage_datum.set_holdable(list(/obj/item/reagent_containers/food/snacks)) pixel_y = rand(-3,3) pixel_x = rand(-3,3) + +/obj/item/storage/box/nt_mre/PopulateContents() new /obj/item/reagent_containers/food/snacks/donkpocket(src) new /obj/item/reagent_containers/food/snacks/donkpocket(src) new /obj/item/reagent_containers/food/snacks/donkpocket(src) diff --git a/code/game/objects/items/pamphlets.dm b/code/game/objects/items/pamphlets.dm index ce2adbc2788d6..738ffa535a1bb 100644 --- a/code/game/objects/items/pamphlets.dm +++ b/code/game/objects/items/pamphlets.dm @@ -24,8 +24,15 @@ var/large_vehicle var/stamina + ///assoc list list(SKILL = MAXIMUM_INT) for when we dont want to let them read this + var/list/max_skills + /obj/item/pamphlet/attack_self(mob/living/user) . = ..() + for(var/skill in max_skills) + if(user.skills.getRating(skill) >= max_skills[skill]) + balloon_alert(user, "nothing to learn!") + return if(!do_after(user, 5 SECONDS, NONE, user)) return user.set_skills(user.skills.modifyRating(cqc, melee_weapons, firearms, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun, \ @@ -38,4 +45,5 @@ name = "loader's instruction manual" desc = "A crude drawing depicting what you think is loading a tank gun. Is that crayon?" large_vehicle = 1 + max_skills = list(SKILL_LARGE_VEHICLE = SKILL_LARGE_VEHICLE_TRAINED) diff --git a/code/game/objects/items/reagent_containers/autoinjectors.dm b/code/game/objects/items/reagent_containers/autoinjectors.dm index 60a1a1157abd1..4e8d93c7f5558 100644 --- a/code/game/objects/items/reagent_containers/autoinjectors.dm +++ b/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -12,11 +12,11 @@ /obj/item/reagent_containers/hypospray/autoinjector/update_icon_state() . = ..() - if(!(reagents.total_volume) && is_drawable()) + if(!(reagents?.total_volume) && is_drawable()) icon_state += "X" name = "expended [name]" //So people can see what have been expended since we have smexy new sprites people aren't used too... DISABLE_BITFIELD(reagents.reagent_flags, DRAWABLE) - else if(reagents.total_volume && !CHECK_BITFIELD(reagents.reagent_flags, DRAWABLE)) // refilling it somehow + else if(reagents?.total_volume && !CHECK_BITFIELD(reagents.reagent_flags, DRAWABLE)) // refilling it somehow icon_state = initial(icon_state) name = initial(name) ENABLE_BITFIELD(reagents.reagent_flags, DRAWABLE) diff --git a/code/game/objects/items/reagent_containers/hypospray.dm b/code/game/objects/items/reagent_containers/hypospray.dm index 8ca2e249240a3..9f70574c64b3a 100644 --- a/code/game/objects/items/reagent_containers/hypospray.dm +++ b/code/game/objects/items/reagent_containers/hypospray.dm @@ -54,7 +54,7 @@ pill.reagents.trans_to(src, pill.reagents.total_volume) to_chat(user, span_notice("You dissolve [pill] from [bottle] in [src].")) - bottle.remove_from_storage(pill,null,user) + bottle.storage_datum.remove_from_storage(pill,null,user) qdel(pill) return @@ -310,7 +310,7 @@ /obj/item/reagent_containers/hypospray/advanced/update_overlays() . = ..() - if(reagents.total_volume) + if(reagents?.total_volume) var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10") var/percent = round((reagents.total_volume / volume) * 100) diff --git a/code/game/objects/items/reagent_containers/jerrycan.dm b/code/game/objects/items/reagent_containers/jerrycan.dm index 59c4f7a578746..aed8d5b6bf942 100644 --- a/code/game/objects/items/reagent_containers/jerrycan.dm +++ b/code/game/objects/items/reagent_containers/jerrycan.dm @@ -9,6 +9,15 @@ ///how much fuel we use up per spill var/fuel_usage = 10 +/obj/item/reagent_containers/jerrycan/examine(mob/user as mob) + . = ..() + if(!reagents) + return + if(get_dist(user,src) > 2) + . += span_warning("You're too far away to see [src]'s reagent amount!") + return + . += "There is [volume] units of fuel remaining." + /obj/item/reagent_containers/jerrycan/attack_turf(turf/A, mob/user) . = ..() if(A.density) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index b7279d03f79d9..e621cc4df1ac0 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -75,8 +75,8 @@ desc = "This leather has been cleaned but still needs to be dried." singular_name = "wet leather piece" icon_state = "sheet-wetleather" - var/wetness = 30 //Reduced when exposed to high temperautres - var/drying_threshold_temperature = 500 //Kelvin to start drying + ///How damp it is + var/wetness = 30 /obj/item/stack/sheet/leather name = "leather" @@ -109,20 +109,22 @@ //Step two - washing..... it's actually in washing machine code. //Step three - drying -/obj/item/stack/sheet/wetleather/fire_act(exposed_temperature, exposed_volume) - ..() - if(exposed_temperature >= drying_threshold_temperature) - wetness-- - if(wetness == 0) - //Try locating an exisitng stack on the tile and add to there if possible - for(var/obj/item/stack/sheet/leather/HS in src.loc) - if(HS.amount < 50) - HS.amount++ - src.use(1) - wetness = initial(wetness) - break - //If it gets to here it means it did not find a suitable stack on the tile. - var/obj/item/stack/sheet/leather/HS = new(src.loc) - HS.amount = 1 +/obj/item/stack/sheet/wetleather/fire_act(burn_level) + . = ..() + if(!wetness) + return + wetness-- + if(wetness < 0) + return + //Try locating an exisitng stack on the tile and add to there if possible + for(var/obj/item/stack/sheet/leather/leather in loc) + if(leather.amount < 50) + leather.amount++ + use(1) wetness = initial(wetness) - src.use(1) + break + //If it gets to here it means it did not find a suitable stack on the tile. + var/obj/item/stack/sheet/leather/leather = new(loc) + leather.amount = 1 + wetness = initial(wetness) + use(1) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 227e446ef74ea..c778aaff596a2 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -20,36 +20,23 @@ ) w_class = WEIGHT_CLASS_BULKY equip_slot_flags = ITEM_SLOT_BACK //ERROOOOO - max_w_class = WEIGHT_CLASS_NORMAL - storage_slots = null - max_storage_space = 24 - access_delay = 1.5 SECONDS - -/obj/item/storage/backpack/should_access_delay(obj/item/item, mob/user, taking_out) - if(!taking_out) // Always allow items to be tossed in instantly - return FALSE - if(ishuman(user)) - var/mob/living/carbon/human/human_user = user - if(human_user.back == src) - return TRUE - return FALSE + storage_type = /datum/storage/backpack /obj/item/storage/backpack/attackby(obj/item/I, mob/user, params) . = ..() - - if (use_sound) - playsound(loc, use_sound, 15, 1, 6) + if(storage_datum.use_sound) + playsound(loc, storage_datum.use_sound, 15, 1, 6) /obj/item/storage/backpack/equipped(mob/user, slot) if(slot == SLOT_BACK) mouse_opacity = 2 //so it's easier to click when properly equipped. - if(use_sound) - playsound(loc, use_sound, 15, 1, 6) - ..() + if(storage_datum.use_sound) + playsound(loc, storage_datum.use_sound, 15, 1, 6) + return ..() /obj/item/storage/backpack/dropped(mob/user) mouse_opacity = initial(mouse_opacity) - ..() + return ..() /obj/item/storage/backpack/vendor_equip(mob/user) ..() @@ -63,8 +50,7 @@ name = "bag of holding" desc = "A backpack that opens into a localized pocket of Blue Space." icon_state = "holdingpack" - max_w_class = WEIGHT_CLASS_BULKY - max_storage_space = 28 + storage_type = /datum/storage/backpack/holding /obj/item/storage/backpack/holding/attackby(obj/item/I, mob/user, params) if(!istype(I, /obj/item/storage/backpack/holding)) @@ -78,9 +64,7 @@ icon_state = "giftbag0" item_state = "giftbag" w_class = WEIGHT_CLASS_BULKY - storage_slots = null - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 400 // can store a ton of shit! + storage_type = /datum/storage/backpack/santabag /obj/item/storage/backpack/cultpack name = "trophy rack" @@ -146,15 +130,12 @@ name = "leather satchel" desc = "It's a very fancy satchel made with fine leather." icon_state = "satchel" - storage_slots = null - max_storage_space = 15 - access_delay = 0 + storage_type = /datum/storage/backpack/satchel /obj/item/storage/backpack/satchel/withwallet/Initialize(mapload, ...) . = ..() new /obj/item/storage/wallet/random( src ) - /obj/item/storage/backpack/satchel/som name = "mining satchel" desc = "A satchel with origins dating back to the mining colonies." @@ -350,41 +331,25 @@ desc = "The standard-issue backpack worn by TGMC technicians. Specially equipped to hold sentry gun and HSG-102 emplacement parts." icon_state = "marinepackt" item_state = "marinepackt" - bypass_w_limit = list( - /obj/item/weapon/gun/sentry/big_sentry, - /obj/item/weapon/gun/sentry/mini, - /obj/item/weapon/gun/hsg_102, - /obj/item/ammo_magazine/hsg_102, - /obj/item/ammo_magazine/sentry, - /obj/item/ammo_magazine/minisentry, - /obj/item/mortal_shell, - /obj/item/mortar_kit, - /obj/item/stack/razorwire, - /obj/item/stack/sandbags, - ) + storage_type = /datum/storage/backpack/tech /obj/item/storage/backpack/marine/satchel name = "\improper TGMC satchel" desc = "A heavy-duty satchel carried by some TGMC soldiers and support personnel." icon_state = "marinesat" item_state = "marinesat" - storage_slots = null - max_storage_space = 15 - access_delay = 0 + storage_type = /datum/storage/backpack/satchel /obj/item/storage/backpack/marine/satchel/green name = "\improper TGMC satchel" icon_state = "marinesat_green" - /obj/item/storage/backpack/marine/corpsman/satchel name = "\improper TGMC corpsman satchel" desc = "A heavy-duty satchel carried by some TGMC corpsmen. You can recharge defibrillators by plugging them in." icon_state = "marinesatm" item_state = "marinesatm" - storage_slots = null - max_storage_space = 15 - access_delay = 0 + storage_type = /datum/storage/backpack/satchel cell = /obj/item/cell/apc /obj/item/storage/backpack/marine/satchel/tech @@ -392,21 +357,13 @@ desc = "A heavy-duty satchel carried by some TGMC technicians. Can hold the ST-580 point defense sentry and ammo." icon_state = "marinesatt" item_state = "marinesatt" - bypass_w_limit = list( - /obj/item/weapon/gun/sentry/mini, - /obj/item/ammo_magazine/hsg_102, - /obj/item/ammo_magazine/sentry, - /obj/item/ammo_magazine/minisentry, - /obj/item/mortal_shell, - /obj/item/stack/razorwire, - /obj/item/stack/sandbags, - ) + storage_type = /datum/storage/backpack/satchel/tech /obj/item/storage/backpack/marine/smock name = "\improper M3 sniper's smock" desc = "A specially designed smock with pockets for all your sniper needs." icon_state = "smock" - access_delay = 0 + storage_type = /datum/storage/backpack/no_delay //CLOAKS @@ -711,9 +668,7 @@ icon_state = "engineerpack" item_state = "engineerpack" var/max_fuel = 260 - storage_slots = null - max_storage_space = 15 - access_delay = 0 + storage_type = /datum/storage/backpack/satchel /obj/item/storage/backpack/marine/engineerpack/Initialize(mapload, ...) . = ..() @@ -790,23 +745,19 @@ name = "\improper lightweight combat pack" desc = "A small lightweight pack for expeditions and short-range operations." icon_state = "ERT_satchel" - access_delay = 0 + storage_type = /datum/storage/backpack/no_delay /obj/item/storage/backpack/commando name = "commando bag" desc = "A heavy-duty bag carried by Nanotrasen commandos." icon_state = "commandopack" - storage_slots = null - max_storage_space = 40 - access_delay = 0 + storage_type = /datum/storage/backpack/commando /obj/item/storage/backpack/captain name = "marine captain backpack" desc = "The contents of this backpack are top secret." icon_state = "marinepack" - storage_slots = null - max_storage_space = 30 - + storage_type = /datum/storage/backpack/captain /obj/item/storage/backpack/lightpack/som name = "mining rucksack" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 6dda103b35603..31d49168c89ea 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -16,11 +16,8 @@ // Generic non-item /obj/item/storage/bag - allow_quick_gather = 1 - allow_quick_empty = 1 - display_contents_with_number = 0 // UNStABLE AS FuCK, turn on when it stops crashing clients - use_to_pickup = 1 equip_slot_flags = ITEM_SLOT_BELT + storage_type = /datum/storage/bag // ----------------------------- // Trash bag @@ -33,10 +30,7 @@ item_state = "trashbag" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_SMALL - storage_slots = 21 - can_hold = list() // any - cant_hold = list(/obj/item/disk/nuclear) + storage_type = /datum/storage/bag/trash /obj/item/storage/bag/trash/update_icon_state() . = ..() @@ -62,10 +56,7 @@ item_state = "plasticbag" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_SMALL - storage_slots = 21 - can_hold = list() // any - cant_hold = list(/obj/item/disk/nuclear) + storage_type = /datum/storage/bag/plasticbag // ----------------------------- // Mining Satchel @@ -78,11 +69,7 @@ icon_state = "satchel" equip_slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET w_class = WEIGHT_CLASS_NORMAL - storage_slots = 50 - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list(/obj/item/ore) - + storage_type = /datum/storage/bag/ore // ----------------------------- // Plant bag @@ -92,16 +79,8 @@ icon = 'icons/obj/items/storage/storage.dmi' icon_state = "plantbag" name = "Plant Bag" - storage_slots = 50; //the number of plant pieces it can carry. - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class - max_w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/reagent_containers/food/snacks/grown, - /obj/item/seeds, - /obj/item/grown, - ) - + storage_type = /datum/storage/bag/plants // ----------------------------- // Sheet Snatcher @@ -114,122 +93,10 @@ icon_state = "sheetsnatcher" name = "Sheet Snatcher" desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." - - var/capacity = 300; //the number of sheets it can carry. w_class = WEIGHT_CLASS_NORMAL - - allow_quick_empty = 1 // this function is superceded - -/obj/item/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/wood)) - if(!stop_messages) - to_chat(usr, "The snatcher does not accept [W].") - return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu - var/current = 0 - for(var/obj/item/stack/sheet/S in contents) - current += S.amount - if(capacity == current)//If it's full, you're done - if(!stop_messages) - to_chat(usr, span_warning("The snatcher is full.")) - return 0 - return 1 - - -// Modified handle_item_insertion. Would prefer not to, but... -/obj/item/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - var/obj/item/stack/sheet/S = W - if(!istype(S)) return 0 - - var/amount - var/inserted = 0 - var/current = 0 - for(var/obj/item/stack/sheet/S2 in contents) - current += S2.amount - if(capacity < current + S.amount)//If the stack will fill it up - amount = capacity - current - else - amount = S.amount - - for(var/obj/item/stack/sheet/sheet in contents) - if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects - sheet.amount += amount // they should only be removed through procs in this file, which split them up. - S.amount -= amount - inserted = 1 - break - - if(!inserted || !S.amount) - if(user && W.loc == user) - user.temporarilyRemoveItemFromInventory(S) - if(!S.amount) - qdel(S) - else - S.forceMove(src) - - orient2hud() - for(var/mob/M in can_see_content()) - show_to(M) - - update_icon() - return 1 - - -// Sets up numbered display to show the stack size of each stored mineral -// NOTE: numbered display is turned off currently because it's broken -/obj/item/storage/bag/sheetsnatcher/orient2hud() - var/adjusted_contents = length(contents) - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/stack/sheet/I in contents) - adjusted_contents++ - var/datum/numbered_display/D = new/datum/numbered_display(I) - D.number = I.amount - numbered_contents.Add( D ) - - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - slot_orient_objs(row_num, col_count, numbered_contents) - - - -// Modified quick_empty verb drops appropriate sized stacks -/obj/item/storage/bag/sheetsnatcher/quick_empty() - var/location = get_turf(src) - for(var/obj/item/stack/sheet/S in contents) - while(S.amount) - var/obj/item/stack/sheet/N = new S.type(location) - var/stacksize = min(S.amount,N.max_amount) - N.amount = stacksize - S.amount -= stacksize - if(!S.amount) - qdel(S) // todo: there's probably something missing here - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - -// Instead of removing -/obj/item/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W, atom/new_location, mob/user) - var/obj/item/stack/sheet/S = W - if(!istype(S)) - return FALSE - - //I would prefer to drop a new stack, but the item/attack_hand(mob/living/user) - // that calls this can't recieve a different object than you clicked on. - //Therefore, make a new stack internally that has the remainder. - // -Sayu - - if(S.amount > S.max_amount) - var/obj/item/stack/sheet/temp = new S.type(src) - temp.amount = S.amount - S.max_amount - S.amount = S.max_amount - - return ..(S,new_location,user) + storage_type = /datum/storage/bag/sheetsnatcher + ///the number of sheets it can carry. + var/capacity = 300 // ----------------------------- // Sheet Snatcher (Cyborg) @@ -249,11 +116,5 @@ icon_state = "cashbag" name = "Cash bag" desc = "A bag for carrying lots of cash. It's got a big dollar sign printed on the front." - storage_slots = 50; //the number of cash pieces it can carry. - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class - max_w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/coin, - /obj/item/spacecash, - ) + storage_type = /datum/storage/bag/cash diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 6c7bd86c531b1..04bda97f70d4d 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -10,9 +10,7 @@ equip_slot_flags = ITEM_SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined") w_class = WEIGHT_CLASS_BULKY - allow_drawing_method = TRUE - - + storage_type = /datum/storage/belt /obj/item/storage/belt/equipped(mob/user, slot) if(slot == SLOT_BELT) @@ -32,10 +30,7 @@ desc = "Proves to the world that you are the strongest!" icon_state = "championbelt" item_state = "champion" - storage_slots = 1 - can_hold = list( - /obj/item/clothing/mask/luchador, - ) + storage_type = /datum/storage/belt/champion /*============================//MARINE BELTS\\================================== =======================================================================*/ @@ -45,36 +40,19 @@ desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This version lacks any combat functionality, and is commonly used by engineers to transport important tools." icon_state = "utilitybelt" item_state = "utility" - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( - /obj/item/tool/screwdriver, - /obj/item/tool/wirecutters, - /obj/item/tool/weldingtool, - /obj/item/tool/wrench, - /obj/item/tool/crowbar, - /obj/item/stack/cable_coil, - /obj/item/tool/multitool, - /obj/item/flashlight, - /obj/item/t_scanner, - /obj/item/tool/analyzer, - /obj/item/tool/taperoll/engineering, - /obj/item/tool/extinguisher/mini, - /obj/item/tool/shovel/etool, - ) - -/obj/item/storage/belt/utility/full/Initialize(mapload) - . = ..() - new /obj/item/tool/screwdriver (src) - new /obj/item/tool/wirecutters (src) - new /obj/item/tool/weldingtool (src) - new /obj/item/tool/wrench (src) - new /obj/item/tool/crowbar (src) + storage_type = /datum/storage/belt/utility + +/obj/item/storage/belt/utility/full/PopulateContents() + new /obj/item/tool/screwdriver(src) + new /obj/item/tool/wirecutters(src) + new /obj/item/tool/weldingtool(src) + new /obj/item/tool/wrench(src) + new /obj/item/tool/crowbar(src) new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) new /obj/item/tool/multitool(src) -/obj/item/storage/belt/utility/atmostech/Initialize(mapload) - . = ..() +/obj/item/storage/belt/utility/atmostech/PopulateContents() new /obj/item/tool/screwdriver(src) new /obj/item/tool/wrench(src) new /obj/item/tool/weldingtool(src) @@ -87,39 +65,14 @@ desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This lightweight configuration is often used for bulk carrying of medical supplies by marines." icon_state = "medicalbelt_small" item_state = "medicbag" - storage_slots = 15 - max_storage_space = 30 - max_w_class = 3 - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/pill, - /obj/item/reagent_containers/syringe, - /obj/item/storage/pill_bottle, - /obj/item/storage/pill_bottle/packet, - /obj/item/stack/medical, - /obj/item/reagent_containers/hypospray/autoinjector, - /obj/item/reagent_containers/dropper, - ) + storage_type = /datum/storage/belt/medical_small /obj/item/storage/belt/lifesaver name = "\improper M276 pattern lifesaver bag" desc = "The M276 is the standard load-bearing equipment of the TGMC. This configuration mounts a duffel bag filled with a range of injectors and light medical supplies and is common among medics." icon_state = "medicalbag" item_state = "medicbag" - storage_slots = 21 //can hold 3 "rows" of very limited medical equipment, but it *should* give a decent boost to squad medics. - max_storage_space = 42 - max_w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/pill, - /obj/item/reagent_containers/syringe, - /obj/item/storage/pill_bottle, - /obj/item/storage/syringe_case, - /obj/item/reagent_containers/hypospray/autoinjector, - /obj/item/stack/medical, - ) + storage_type = /datum/storage/belt/lifesaver /obj/item/storage/belt/lifesaver/full/Initialize(mapload) //The belt, with all it's magic inside! . = ..() @@ -206,8 +159,7 @@ icon_state = "medicbag_som" item_state = "medicbag_som" -/obj/item/storage/belt/lifesaver/som/ert/Initialize(mapload) - . = ..() +/obj/item/storage/belt/lifesaver/som/ert/PopulateContents() new /obj/item/storage/pill_bottle/bicaridine(src) new /obj/item/storage/pill_bottle/kelotane(src) new /obj/item/storage/pill_bottle/tramadol(src) @@ -230,8 +182,7 @@ new /obj/item/stack/medical/heal_pack/advanced/bruise_pack(src) new /obj/item/healthanalyzer(src) -/obj/item/storage/belt/lifesaver/som/quick/Initialize(mapload) - . = ..() +/obj/item/storage/belt/lifesaver/som/quick/PopulateContents() new /obj/item/storage/pill_bottle/bicaridine(src) new /obj/item/storage/pill_bottle/kelotane(src) new /obj/item/storage/pill_bottle/tramadol(src) @@ -260,8 +211,7 @@ icon_state = "medicbag_icc" item_state = "medicbag_icc" -/obj/item/storage/belt/lifesaver/icc/ert/Initialize(mapload) - . = ..() +/obj/item/storage/belt/lifesaver/icc/ert/PopulateContents() new /obj/item/storage/pill_bottle/bicaridine(src) new /obj/item/storage/pill_bottle/kelotane(src) new /obj/item/storage/pill_bottle/tramadol(src) @@ -289,25 +239,7 @@ desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This version is a less common configuration, designed to transport medical supplies and heavier medical tools." icon_state = "medicalbelt" item_state = "medical" - storage_slots = 16 - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 42 - - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/reagent_containers/glass/beaker, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/pill, - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/hypospray, - /obj/item/storage/pill_bottle, - /obj/item/storage/syringe_case, - /obj/item/stack/medical, - /obj/item/bodybag, - /obj/item/defibrillator, - /obj/item/roller, - /obj/item/tool/research, - ) + storage_type = /datum/storage/belt/rig /obj/item/storage/belt/rig/medical/Initialize(mapload) //The belt, with all it's magic inside! . = ..() @@ -352,16 +284,7 @@ desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This version is a less common configuration, designed to transport hyposprays and reagent containers. You could probably fit a syringe case too." icon_state = "hypospraybelt" item_state = "medicbag" - storage_slots = 21 - max_storage_space = 42 - max_w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/reagent_containers/glass/beaker, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/hypospray, - /obj/item/storage/syringe_case, - ) + storage_type = /datum/storage/belt/hypospraybelt /obj/item/storage/belt/hypospraybelt/full/Initialize(mapload) //The belt, with all it's magic inside! . = ..() @@ -383,8 +306,7 @@ new /obj/item/reagent_containers/hypospray/advanced/hypervene(src) new /obj/item/healthanalyzer(src) -/obj/item/storage/belt/hypospraybelt/beginner/Initialize(mapload) - . = ..() +/obj/item/storage/belt/hypospraybelt/beginner/PopulateContents() new /obj/item/reagent_containers/glass/bottle/bicaridine(src) new /obj/item/reagent_containers/glass/bottle/kelotane(src) new /obj/item/reagent_containers/glass/bottle/tramadol(src) @@ -413,43 +335,14 @@ desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This configuration is commonly seen among TGMC Military Police and peacekeepers, though it can hold some light munitions." icon_state = "securitybelt" item_state = "security"//Could likely use a better one. - storage_slots = 7 - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 21 - can_hold = list( - /obj/item/explosive/grenade/flashbang, - /obj/item/explosive/grenade/chem_grenade/teargas, - /obj/item/reagent_containers/spray/pepper, - /obj/item/restraints/handcuffs, - /obj/item/flash, - /obj/item/clothing/glasses, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/handful, - /obj/item/reagent_containers/food/snacks/donut, - /obj/item/weapon/baton, - /obj/item/weapon/gun/energy/taser, - /obj/item/tool/lighter/zippo, - /obj/item/storage/fancy/cigarettes, - /obj/item/clothing/glasses/hud/security, - /obj/item/flashlight, - /obj/item/radio/headset, - /obj/item/tool/taperoll/police, - ) - - cant_hold = list( - /obj/item/weapon/gun, - ) - - + storage_type = /datum/storage/belt/security /obj/item/storage/belt/security/tactical name = "combat belt" desc = "Can hold security gear like handcuffs and flashes, with more pouches for more storage." icon_state = "swatbelt" item_state = "swatbelt" - storage_slots = 9 - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 21 + storage_type = /datum/storage/belt/security/tactical /obj/item/storage/belt/marine name = "\improper M276 pattern ammo load rig" @@ -457,29 +350,9 @@ icon_state = "marinebelt" item_state = "marinebelt" w_class = WEIGHT_CLASS_BULKY - storage_slots = 6 - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 18 - can_hold = list( - /obj/item/weapon/combat_knife, - /obj/item/attachable/bayonetknife, - /obj/item/explosive/grenade/flare/civilian, - /obj/item/explosive/grenade/flare, - /obj/item/ammo_magazine/rifle, - /obj/item/cell/lasgun, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/revolver, - /obj/item/ammo_magazine/sniper, - /obj/item/ammo_magazine/handful, - /obj/item/ammo_magazine/railgun, - /obj/item/explosive/grenade, - /obj/item/explosive/mine, - /obj/item/reagent_containers/food/snacks, - ) - -/obj/item/storage/belt/marine/t18/Initialize(mapload) - . = ..() + storage_type = /datum/storage/belt/marine + +/obj/item/storage/belt/marine/t18/PopulateContents() new /obj/item/ammo_magazine/rifle/standard_carbine(src) new /obj/item/ammo_magazine/rifle/standard_carbine(src) new /obj/item/ammo_magazine/rifle/standard_carbine(src) @@ -487,8 +360,7 @@ new /obj/item/ammo_magazine/rifle/standard_carbine(src) new /obj/item/ammo_magazine/rifle/standard_carbine(src) -/obj/item/storage/belt/marine/t12/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/t12/PopulateContents() new /obj/item/ammo_magazine/rifle/standard_assaultrifle(src) new /obj/item/ammo_magazine/rifle/standard_assaultrifle(src) new /obj/item/ammo_magazine/rifle/standard_assaultrifle(src) @@ -496,8 +368,7 @@ new /obj/item/ammo_magazine/rifle/standard_assaultrifle(src) new /obj/item/ammo_magazine/rifle/standard_assaultrifle(src) -/obj/item/storage/belt/marine/standard_skirmishrifle/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/standard_skirmishrifle/PopulateContents() new /obj/item/ammo_magazine/rifle/standard_skirmishrifle(src) new /obj/item/ammo_magazine/rifle/standard_skirmishrifle(src) new /obj/item/ammo_magazine/rifle/standard_skirmishrifle(src) @@ -505,8 +376,7 @@ new /obj/item/ammo_magazine/rifle/standard_skirmishrifle(src) new /obj/item/ammo_magazine/rifle/standard_skirmishrifle(src) -/obj/item/storage/belt/marine/standard_battlerifle/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/standard_battlerifle/PopulateContents() new /obj/item/ammo_magazine/rifle/standard_br(src) new /obj/item/ammo_magazine/rifle/standard_br(src) new /obj/item/ammo_magazine/rifle/standard_br(src) @@ -514,8 +384,7 @@ new /obj/item/ammo_magazine/rifle/standard_br(src) new /obj/item/ammo_magazine/rifle/standard_br(src) -/obj/item/storage/belt/marine/t90/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/t90/PopulateContents() new /obj/item/ammo_magazine/smg/standard_smg(src) new /obj/item/ammo_magazine/smg/standard_smg(src) new /obj/item/ammo_magazine/smg/standard_smg(src) @@ -523,8 +392,7 @@ new /obj/item/ammo_magazine/smg/standard_smg(src) new /obj/item/ammo_magazine/smg/standard_smg(src) -/obj/item/storage/belt/marine/secondary/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/secondary/PopulateContents() new /obj/item/ammo_magazine/smg/m25(src) new /obj/item/ammo_magazine/smg/m25(src) new /obj/item/ammo_magazine/smg/m25(src) @@ -532,8 +400,7 @@ new /obj/item/ammo_magazine/smg/m25(src) new /obj/item/ammo_magazine/smg/m25(src) -/obj/item/storage/belt/marine/antimaterial/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/antimaterial/PopulateContents() new /obj/item/ammo_magazine/sniper/flak(src) new /obj/item/ammo_magazine/sniper/flak(src) new /obj/item/ammo_magazine/sniper/incendiary(src) @@ -541,8 +408,7 @@ new /obj/item/ammo_magazine/sniper(src) new /obj/item/ammo_magazine/sniper(src) -/obj/item/storage/belt/marine/tx8/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/tx8/PopulateContents() new /obj/item/ammo_magazine/rifle/tx8/impact(src) new /obj/item/ammo_magazine/rifle/tx8/impact(src) new /obj/item/ammo_magazine/rifle/tx8/incendiary(src) @@ -550,8 +416,7 @@ new /obj/item/ammo_magazine/rifle/tx8(src) new /obj/item/ammo_magazine/rifle/tx8(src) -/obj/item/storage/belt/marine/combat_rifle/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/combat_rifle/PopulateContents() new /obj/item/ammo_magazine/rifle/tx11(src) new /obj/item/ammo_magazine/rifle/tx11(src) new /obj/item/ammo_magazine/rifle/tx11(src) @@ -559,8 +424,7 @@ new /obj/item/ammo_magazine/rifle/tx11(src) new /obj/item/ammo_magazine/rifle/tx11(src) -/obj/item/storage/belt/marine/alf_machinecarbine/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/alf_machinecarbine/PopulateContents() new /obj/item/ammo_magazine/rifle/alf_machinecarbine(src) new /obj/item/ammo_magazine/rifle/alf_machinecarbine(src) new /obj/item/ammo_magazine/rifle/alf_machinecarbine(src) @@ -568,8 +432,7 @@ new /obj/item/ammo_magazine/rifle/alf_machinecarbine(src) new /obj/item/ammo_magazine/rifle/alf_machinecarbine(src) -/obj/item/storage/belt/marine/auto_shotgun/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/auto_shotgun/PopulateContents() new /obj/item/ammo_magazine/rifle/tx15_slug(src) new /obj/item/ammo_magazine/rifle/tx15_slug(src) new /obj/item/ammo_magazine/rifle/tx15_slug(src) @@ -577,8 +440,7 @@ new /obj/item/ammo_magazine/rifle/tx15_flechette(src) new /obj/item/ammo_magazine/rifle/tx15_flechette(src) -/obj/item/storage/belt/marine/te_cells/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/te_cells/PopulateContents() new /obj/item/cell/lasgun/lasrifle(src) new /obj/item/cell/lasgun/lasrifle(src) new /obj/item/cell/lasgun/lasrifle(src) @@ -586,8 +448,7 @@ new /obj/item/cell/lasgun/lasrifle(src) new /obj/item/cell/lasgun/lasrifle(src) -/obj/item/storage/belt/marine/oicw/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/oicw/PopulateContents() new /obj/item/ammo_magazine/rifle/standard_carbine(src) new /obj/item/ammo_magazine/rifle/standard_carbine(src) new /obj/item/ammo_magazine/rifle/tx54/incendiary(src) @@ -595,8 +456,7 @@ new /obj/item/ammo_magazine/rifle/tx54(src) new /obj/item/ammo_magazine/rifle/tx54(src) -/obj/item/storage/belt/marine/smartgun/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/smartgun/PopulateContents() new /obj/item/ammo_magazine/standard_smartmachinegun(src) new /obj/item/ammo_magazine/standard_smartmachinegun(src) new /obj/item/ammo_magazine/standard_smartmachinegun(src) @@ -604,8 +464,7 @@ new /obj/item/ammo_magazine/standard_smartmachinegun(src) new /obj/item/ammo_magazine/standard_smartmachinegun(src) -/obj/item/storage/belt/marine/target_rifle/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/target_rifle/PopulateContents() new /obj/item/ammo_magazine/rifle/standard_smarttargetrifle(src) new /obj/item/ammo_magazine/rifle/standard_smarttargetrifle(src) new /obj/item/ammo_magazine/rifle/standard_smarttargetrifle(src) @@ -620,8 +479,7 @@ item_state = "upp_belt" //version full of type 71 mags -/obj/item/storage/belt/marine/upp/full/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/upp/full/PopulateContents() new /obj/item/ammo_magazine/rifle/type71(src) new /obj/item/ammo_magazine/rifle/type71(src) new /obj/item/ammo_magazine/rifle/type71(src) @@ -635,8 +493,7 @@ icon_state = "som_belt" item_state = "som_belt" -/obj/item/storage/belt/marine/som/som_rifle/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/som_rifle/PopulateContents() new /obj/item/ammo_magazine/rifle/som(src) new /obj/item/ammo_magazine/rifle/som(src) new /obj/item/ammo_magazine/rifle/som(src) @@ -644,8 +501,7 @@ new /obj/item/ammo_magazine/rifle/som(src) new /obj/item/ammo_magazine/rifle/som(src) -/obj/item/storage/belt/marine/som/som_rifle_ap/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/som_rifle_ap/PopulateContents() new /obj/item/ammo_magazine/rifle/som/ap(src) new /obj/item/ammo_magazine/rifle/som/ap(src) new /obj/item/ammo_magazine/rifle/som/ap(src) @@ -653,8 +509,7 @@ new /obj/item/ammo_magazine/rifle/som/ap(src) new /obj/item/ammo_magazine/rifle/som/ap(src) -/obj/item/storage/belt/marine/som/som_smg/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/som_smg/PopulateContents() new /obj/item/ammo_magazine/smg/som(src) new /obj/item/ammo_magazine/smg/som(src) new /obj/item/ammo_magazine/smg/som(src) @@ -662,8 +517,7 @@ new /obj/item/ammo_magazine/smg/som(src) new /obj/item/ammo_magazine/smg/som(src) -/obj/item/storage/belt/marine/som/som_smg_ap/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/som_smg_ap/PopulateContents() new /obj/item/ammo_magazine/smg/som/ap(src) new /obj/item/ammo_magazine/smg/som/ap(src) new /obj/item/ammo_magazine/smg/som/ap(src) @@ -671,8 +525,7 @@ new /obj/item/ammo_magazine/smg/som/ap(src) new /obj/item/ammo_magazine/smg/som/ap(src) -/obj/item/storage/belt/marine/som/volkite/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/volkite/PopulateContents() new /obj/item/cell/lasgun/volkite(src) new /obj/item/cell/lasgun/volkite(src) new /obj/item/cell/lasgun/volkite(src) @@ -680,8 +533,7 @@ new /obj/item/cell/lasgun/volkite(src) new /obj/item/cell/lasgun/volkite(src) -/obj/item/storage/belt/marine/som/mpi_plum/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/mpi_plum/PopulateContents() new /obj/item/ammo_magazine/rifle/mpi_km/plum(src) new /obj/item/ammo_magazine/rifle/mpi_km/plum(src) new /obj/item/ammo_magazine/rifle/mpi_km/plum(src) @@ -689,8 +541,7 @@ new /obj/item/ammo_magazine/rifle/mpi_km/plum(src) new /obj/item/ammo_magazine/rifle/mpi_km/plum(src) -/obj/item/storage/belt/marine/som/mpi_black/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/mpi_black/PopulateContents() new /obj/item/ammo_magazine/rifle/mpi_km/black(src) new /obj/item/ammo_magazine/rifle/mpi_km/black(src) new /obj/item/ammo_magazine/rifle/mpi_km/black(src) @@ -698,8 +549,7 @@ new /obj/item/ammo_magazine/rifle/mpi_km/black(src) new /obj/item/ammo_magazine/rifle/mpi_km/black(src) -/obj/item/storage/belt/marine/som/carbine/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/carbine/PopulateContents() new /obj/item/ammo_magazine/rifle/mpi_km/carbine(src) new /obj/item/ammo_magazine/rifle/mpi_km/carbine(src) new /obj/item/ammo_magazine/rifle/mpi_km/carbine(src) @@ -707,8 +557,7 @@ new /obj/item/ammo_magazine/rifle/mpi_km/carbine(src) new /obj/item/ammo_magazine/rifle/mpi_km/carbine(src) -/obj/item/storage/belt/marine/som/carbine_black/Initialize(mapload) - . = ..() +/obj/item/storage/belt/marine/som/carbine_black/PopulateContents() new /obj/item/ammo_magazine/rifle/mpi_km/carbine/black(src) new /obj/item/ammo_magazine/rifle/mpi_km/carbine/black(src) new /obj/item/ammo_magazine/rifle/mpi_km/carbine/black(src) @@ -726,20 +575,7 @@ desc = "A belt made of a strong but unusual fabric, with clips to hold your equipment." icon_state = "swatbelt" item_state = "swatbelt" - can_hold = list( - /obj/item/weapon/combat_knife, - /obj/item/attachable/bayonetknife, - /obj/item/explosive/grenade, - /obj/item/ammo_magazine/rifle, - /obj/item/cell/lasgun, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/revolver, - /obj/item/ammo_magazine/sniper, - /obj/item/ammo_magazine/handful, - /obj/item/explosive/grenade, - /obj/item/tool/crowbar, - ) + storage_type = /datum/storage/belt/marine/sectoid /obj/item/storage/belt/shotgun name = "\improper shotgun shell load rig" @@ -747,11 +583,7 @@ icon_state = "shotgunbelt" item_state = "shotgunbelt" w_class = WEIGHT_CLASS_BULKY - storage_slots = 14 - max_w_class = WEIGHT_CLASS_SMALL - max_storage_space = 28 - can_hold = list(/obj/item/ammo_magazine/handful) - + storage_type = /datum/storage/belt/shotgun /obj/item/storage/belt/shotgun/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/ammo_magazine)) @@ -763,7 +595,7 @@ to_chat(user, span_warning("[M] is empty.")) return - if(length(contents) >= storage_slots) + if(length(contents) >= storage_datum.storage_slots) to_chat(user, span_warning("[src] is full.")) return @@ -772,8 +604,8 @@ if(!do_after(user, 1.5 SECONDS, NONE, src, BUSY_ICON_GENERIC)) return - for(var/x in 1 to (storage_slots - length(contents))) - var/cont = handle_item_insertion(M.create_handful(), 1, user) + for(var/x in 1 to (storage_datum.storage_slots - length(contents))) + var/cont = storage_datum.handle_item_insertion(M.create_handful(), 1, user) if(!cont) break @@ -898,12 +730,8 @@ name = "martini henry ammo belt" desc = "A belt good enough for holding all your .577/400 ball rounds." icon_state = "martini_belt" - storage_slots = 12 - max_storage_space = 24 - sprite_slots = 6 - draw_mode = 1 - atom_flags = DIRLOCK + storage_type = /datum/storage/belt/shotgun/martini /obj/item/storage/belt/shotgun/martini/Initialize(mapload, ...) . = ..() @@ -927,13 +755,13 @@ if(loc != user) . = ..() - for(var/mob/M in content_watchers) - close(M) + for(var/mob/watcher_mobs in storage_datum.content_watchers) + storage_datum.close(watcher_mobs) if(!length(contents)) - open(user) //Empty belt? Open the inventory + storage_datum.open(user) //Empty belt? Open the inventory - if(!draw_mode) + if(!storage_datum.draw_mode) return ..() //No draw mode so we just click like normal var/obj/item/I = contents[length(contents)] @@ -955,14 +783,9 @@ icon_state="knifebelt" item_state="knifebelt" w_class = WEIGHT_CLASS_NORMAL - storage_slots = 6 - max_w_class = WEIGHT_CLASS_TINY - max_storage_space = 6 - draw_mode = TRUE - can_hold = list(/obj/item/stack/throwing_knife) + storage_type = /datum/storage/belt/knifepouch -/obj/item/storage/belt/knifepouch/Initialize(mapload) - . = ..() +/obj/item/storage/belt/knifepouch/PopulateContents() new /obj/item/stack/throwing_knife(src) new /obj/item/stack/throwing_knife(src) new /obj/item/stack/throwing_knife(src) @@ -976,13 +799,9 @@ icon_state="grenadebelt" item_state="grenadebelt" w_class = WEIGHT_CLASS_BULKY - storage_slots = 9 - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 27 - can_hold = list(/obj/item/explosive/grenade) + storage_type = /datum/storage/belt/grenade -/obj/item/storage/belt/grenade/standard/Initialize(mapload) - . = ..() +/obj/item/storage/belt/grenade/standard/PopulateContents() new /obj/item/explosive/grenade/incendiary(src) new /obj/item/explosive/grenade/incendiary(src) new /obj/item/explosive/grenade(src) @@ -997,8 +816,7 @@ desc = "A simple harness system available in many configurations. This version is designed to carry bulk quantities of grenades." icon_state = "grenadebelt_som" -/obj/item/storage/belt/grenade/som/standard/Initialize(mapload) - . = ..() +/obj/item/storage/belt/grenade/som/standard/PopulateContents() new /obj/item/explosive/grenade/incendiary/som(src) new /obj/item/explosive/grenade/incendiary/som(src) new /obj/item/explosive/grenade/som(src) @@ -1011,13 +829,9 @@ /obj/item/storage/belt/grenade/b17 name = "\improper M276 pattern M40 HEDP rig Mk II" w_class = WEIGHT_CLASS_BULKY - storage_slots = 16 - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 48 - can_hold = list(/obj/item/explosive/grenade) + storage_type = /datum/storage/belt/grenade/b17 -/obj/item/storage/belt/grenade/b17/Initialize(mapload) - . = ..() +/obj/item/storage/belt/grenade/b17/PopulateContents() new /obj/item/explosive/grenade/incendiary(src) new /obj/item/explosive/grenade/incendiary(src) new /obj/item/explosive/grenade/incendiary(src) @@ -1038,12 +852,10 @@ /obj/item/storage/belt/sparepouch name = "\improper G8 general utility pouch" desc = "A small, lightweight pouch that can be clipped onto Armat Systems M3 Pattern armor or your belt to provide additional storage for miscellaneous gear or box and drum magazines." - storage_slots = null - max_storage_space = 9 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL icon_state = "sparepouch" item_state = "sparepouch" + storage_type = /datum/storage/belt/sparepouch /obj/item/storage/belt/sparepouch/som name = "standard utility pouch" @@ -1056,13 +868,8 @@ desc = "A storage belt designed to hold mass amounts of protein packs for those particuarly hungry marines." icon_state = "p_belt" item_state = "shotgunbelt" - storage_slots = 20 - max_storage_space = 20 - max_w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/reagent_containers/food/snacks/protein_pack) - sprite_slots = 4 + storage_type = /datum/storage/belt/protein_pack -/obj/item/storage/belt/protein_pack/Initialize(mapload) - . = ..() - for(var/i in 1 to storage_slots) +/obj/item/storage/belt/protein_pack/PopulateContents() + for(var/i in 1 to storage_datum.storage_slots) new /obj/item/reagent_containers/food/snacks/protein_pack(src) diff --git a/code/game/objects/items/storage/bible.dm b/code/game/objects/items/storage/bible.dm index b2954bde57848..f4db3c90dfa59 100644 --- a/code/game/objects/items/storage/bible.dm +++ b/code/game/objects/items/storage/bible.dm @@ -8,8 +8,8 @@ ) throw_speed = 1 throw_range = 5 - storage_slots = 1 w_class = WEIGHT_CLASS_NORMAL + storage_type = /datum/storage/bible var/mob/affecting = null var/deity_name = "Christ" @@ -22,14 +22,9 @@ name = "bible" desc = "To be applied to the head repeatedly." icon_state ="bible" - storage_slots = 7 - can_hold = list( - /obj/item/reagent_containers/food/drinks/cans, - /obj/item/spacecash, - ) + storage_type = /datum/storage/bible/alcoholic -/obj/item/storage/bible/booze/Initialize(mapload, ...) - . = ..() +/obj/item/storage/bible/booze/PopulateContents() new /obj/item/reagent_containers/food/drinks/cans/beer(src) new /obj/item/reagent_containers/food/drinks/cans/beer(src) new /obj/item/spacecash(src) @@ -50,5 +45,5 @@ /obj/item/storage/bible/attackby(obj/item/I, mob/user, params) . = ..() - if(use_sound) - playsound(loc, use_sound, 25, 1, 6) + if(storage_datum.use_sound) + playsound(loc, storage_datum.use_sound, 25, 1, 6) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 5ad3952b67823..f8bc6f205e1e6 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -39,24 +39,23 @@ #define BOX_GRENADE_COLUMNS 3 #define BOX_GRENADE_ROWS 2 - /obj/item/storage/box name = "box" desc = "It's just an ordinary box." icon_state = "box" item_state = "syringe_kit" - foldable = /obj/item/paper/crumpled - storage_slots = null - max_w_class = WEIGHT_CLASS_SMALL //Changed because of in-game abuse w_class = WEIGHT_CLASS_BULKY //Changed becuase of in-game abuse - var/spawn_type + var/obj/item/spawn_type var/spawn_number + storage_type = /datum/storage/box /obj/item/storage/box/Initialize(mapload, ...) - if(spawn_type) - if(!(spawn_type in can_hold)) - can_hold += spawn_type // must be set before parent init for typecacheof . = ..() + if(spawn_type) + if(!(spawn_type in storage_datum.can_hold)) + // must be set before parent init for typecacheof + var/list/new_hold_list = storage_datum.can_hold + spawn_type + storage_datum.set_holdable(can_hold_list = list(new_hold_list)) if(spawn_type) for(var/i in 1 to spawn_number) new spawn_type(src) @@ -64,15 +63,13 @@ /obj/item/storage/box/survival w_class = WEIGHT_CLASS_NORMAL -/obj/item/storage/box/survival/Initialize(mapload, ...) - . = ..() - new /obj/item/clothing/mask/breath( src ) - new /obj/item/tank/emergency_oxygen( src ) +/obj/item/storage/box/survival/PopulateContents() + new /obj/item/clothing/mask/breath(src) + new /obj/item/tank/emergency_oxygen(src) -/obj/item/storage/box/engineer/Initialize(mapload, ...) - . = ..() - new /obj/item/clothing/mask/breath( src ) - new /obj/item/tank/emergency_oxygen/engi( src ) +/obj/item/storage/box/engineer/PopulateContents() + new /obj/item/clothing/mask/breath(src) + new /obj/item/tank/emergency_oxygen/engi(src) /obj/item/storage/box/gloves name = "box of latex gloves" @@ -224,10 +221,13 @@ desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." icon = 'icons/obj/items/toy.dmi' icon_state = "spbox" - max_storage_space = 8 spawn_type = /obj/item/toy/snappop spawn_number = 8 +/obj/item/storage/box/snappops/Initialize(mapload, ...) + . = ..() + storage_datum.max_storage_space = 8 + /obj/item/storage/box/matches name = "matchbox" desc = "A small box of 'Space-Proof' premium matches." @@ -275,11 +275,9 @@ icon_state = "light" desc = "This box is shaped on the inside so that only light tubes and bulbs fit." item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - max_storage_space = 42 //holds 21 items of w_class 2 - use_to_pickup = 1 // for picking up broken bulbs, not that most people will try spawn_type = /obj/item/light_bulb/bulb spawn_number = 21 + storage_type = /datum/storage/box/lights /obj/item/storage/box/lights/bulbs // mapping placeholder @@ -293,13 +291,14 @@ /obj/item/storage/box/lights/mixed name = "box of replacement lights" icon_state = "lightmixed" - can_hold = list( - /obj/item/light_bulb/tube/large, - /obj/item/light_bulb/bulb, - ) /obj/item/storage/box/lights/mixed/Initialize(mapload, ...) . = ..() + storage_datum.set_holdable(can_hold_list = list( + /obj/item/light_bulb/tube/large, + /obj/item/light_bulb/bulb, + )) + for(var/i in 1 to 14) new /obj/item/light_bulb/tube/large(src) for(var/i in 1 to 7) @@ -319,9 +318,12 @@ icon_state = "lolipop_box_generic" spawn_type = /obj/item/reagent_containers/food/snacks/lollipop/combat spawn_number = 10 - draw_mode = 1 w_class = WEIGHT_CLASS_SMALL +/obj/item/storage/box/combat_lolipop/Initialize(mapload, ...) + . = ..() + storage_datum.draw_mode = TRUE + /obj/item/storage/box/combat_lolipop/tricord name = "box of Tricord-pops" desc = "A small box of lolipops, they have tricord laced in for you up slowly. Recommended to be sucked on, rather than eaten." @@ -344,10 +346,13 @@ desc = "A secure box holding anti-personel proximity mines." icon_state = "minebox" w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 10 spawn_type = /obj/item/explosive/mine spawn_number = 5 +/obj/item/storage/box/explosive_mines/Initialize(mapload, ...) + . = ..() + storage_datum.max_storage_space = 10 + /obj/item/storage/box/explosive_mines/update_icon_state() . = ..() icon_state = initial(icon_state) @@ -358,10 +363,13 @@ name = "\improper M20 mine box" desc = "A large secure box holding anti-personel proximity mines." icon_state = "minebox" - max_storage_space = 20 spawn_type = /obj/item/explosive/mine spawn_number = 10 +/obj/item/storage/box/explosive_mines/large/Initialize(mapload, ...) + . = ..() + storage_datum.max_storage_space = 20 + /obj/item/storage/box/explosive_mines/pmc name = "\improper M20P mine box" spawn_type = /obj/item/explosive/mine/pmc @@ -378,10 +386,13 @@ desc = "A packet of seven M40 FLDP Flares. Carried by TGMC marines to light dark areas that cannot be reached with the usual TNR Shoulder Lamp. Can be launched from an underslung grenade launcher." icon_state = "m40" w_class = WEIGHT_CLASS_SMALL - max_storage_space = 14 spawn_type = /obj/item/explosive/grenade/flare spawn_number = 14 +/obj/item/storage/box/m94/Initialize(mapload, ...) + . = ..() + storage_datum.max_storage_space = 14 + /obj/item/storage/box/m94/update_icon_state() . = ..() icon_state = initial(icon_state) @@ -408,30 +419,16 @@ spawn_type = /obj/item/lightstick/red spawn_number = 7 - /obj/item/storage/box/MRE name = "\improper TGMC MRE" desc = "Meal Ready-to-Eat, meant to be consumed in the field, and has an expiration that is two decades past a marine's average combat life expectancy." icon_state = "mealpack" w_class = WEIGHT_CLASS_SMALL - can_hold = list(/obj/item/reagent_containers/food/snacks/packaged_meal) - storage_slots = 4 - foldable = 0 + ///If our MRE is opened, it gets a new icon var/isopened = 0 - ///the item left behind when this is used up - var/trash_item = /obj/item/trash/mre + storage_type = /datum/storage/box/mre -/obj/item/storage/box/MRE/Initialize(mapload) - . = ..() - pickflavor() - -/obj/item/storage/box/MRE/Destroy() - var/turf/T = get_turf(src) - if(T) - new trash_item(T) - return ..() - -/obj/item/storage/box/MRE/proc/pickflavor() +/obj/item/storage/box/MRE/PopulateContents() var/entree = pick("boneless pork ribs", "grilled chicken", "pizza square", "spaghetti", "chicken tenders") var/side = pick("meatballs", "cheese spread", "beef turnover", "mashed potatoes") var/snack = pick("biscuit", "pretzels", "peanuts", "cracker") @@ -442,11 +439,6 @@ new /obj/item/reagent_containers/food/snacks/packaged_meal(src, snack) new /obj/item/reagent_containers/food/snacks/packaged_meal(src, desert) -/obj/item/storage/box/MRE/remove_from_storage(obj/item/item, atom/new_location, mob/user) - . = ..() - if(. && !length(contents) && !gc_destroyed) - qdel(src) - /obj/item/storage/box/MRE/update_icon_state() . = ..() if(!isopened) @@ -457,7 +449,10 @@ name = "\improper SOM MFR" desc = "A Martian Field Ration, guaranteed to have a taste of Mars in every bite." icon_state = "som_mealpack" - trash_item = /obj/item/trash/mre/som + +/obj/item/storage/box/MRE/som/Initialize(mapload, ...) + . = ..() + storage_datum.trash_item = /obj/item/trash/mre/som /** * # fillable box @@ -474,13 +469,6 @@ item_state = "mag_box" w_class = WEIGHT_CLASS_HUGE slowdown = 0.4 // Big unhandly box - max_w_class = WEIGHT_CLASS_BULKY - storage_slots = 32 // 8 images x 4 items - max_storage_space = 64 - use_to_pickup = TRUE - can_hold = list( - /obj/item, //This box should normally be unobtainable so here we go - ) ///Assoc list of how much weight every item type takes. Used to determine how many overlays to make. var/list/contents_weight = list() ///Initial pixel_x offset of the overlays. @@ -507,6 +495,7 @@ var/closed_overlay ///Overlay icon_state to display on the box when it is open var/open_overlay + storage_type = /datum/storage/box/visual /obj/item/storage/box/visual/Initialize(mapload, ...) . = ..() @@ -520,11 +509,9 @@ /obj/item/storage/box/visual/proc/update_stats() SHOULD_CALL_PARENT(TRUE) max_overlays = amt_horizontal * amt_vertical - overlay_w_class = FLOOR(max_storage_space / max_overlays, 1) - can_hold -= cant_hold //Have cant_hold actually have a use + overlay_w_class = FLOOR(storage_datum.max_storage_space / max_overlays, 1) update_icon() //Getting the closed_overlay onto it - /obj/item/storage/box/visual/examine(mob/user, distance, infix, suffix) . = ..() if (!deployed && !(loc == user)) //Closed and not in your possession @@ -553,7 +540,7 @@ /obj/item/storage/box/visual/attack_hand(mob/living/user) if(loc == user) - open(user) //Always show content when holding box + storage_datum.open(user) //Always show content when holding box return if(!deployed) @@ -561,12 +548,12 @@ return else if(deployed) - draw_mode = variety == 1? TRUE: FALSE //If only one type of item in box, then quickdraw it. - if(draw_mode && ishuman(user) && length(contents)) + storage_datum.draw_mode = variety == 1? TRUE: FALSE //If only one type of item in box, then quickdraw it. + if(storage_datum.draw_mode && ishuman(user) && length(contents)) var/obj/item/I = contents[length(contents)] I.attack_hand(user) return - open(user) + storage_datum.open(user) /obj/item/storage/box/visual/MouseDrop(atom/over_object) if(!deployed) @@ -650,56 +637,24 @@ name = "ammunition box" desc = "This box is able to hold a wide variety of supplies, mainly military-grade ammunition." icon_state = "mag_box" - max_w_class = WEIGHT_CLASS_BULKY - storage_slots = 32 // 8 images x 4 items - max_storage_space = 64 //SMG and pistol sized (tiny and small) mags can fit all 32 slots, normal (LMG and AR) fit 21 - can_hold = list( - /obj/item/ammo_magazine/packet, - /obj/item/ammo_magazine/flamer_tank, - /obj/item/ammo_magazine/handful, - /obj/item/ammo_magazine/m412l1_hpr, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/railgun, - /obj/item/ammo_magazine/revolver, - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/shotgun, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - /obj/item/ammo_magazine/standard_gpmg, - /obj/item/ammo_magazine/hsg_102, - /obj/item/ammo_magazine/standard_lmg, - /obj/item/ammo_magazine/standard_mmg, - /obj/item/ammo_magazine/heavymachinegun, - /obj/item/ammo_magazine/standard_smartmachinegun, - /obj/item/ammo_magazine/som_mg, - /obj/item/cell/lasgun, - ) - cant_hold = list( - /obj/item/ammo_magazine/flamer_tank/backtank, - /obj/item/ammo_magazine/flamer_tank/backtank/X, - ) + storage_type = /datum/storage/box/visual/magazine /obj/item/storage/box/visual/magazine/compact name = "compact magazine box" desc = "A magnifically designed box specifically designed to hold a large quantity of ammo." icon_state = "mag_box_small" - storage_slots = 40 //Same storage as the old prefilled mag boxes found in the req vendor. - max_storage_space = 40 //Adjusted in update_stats() to fit the needs. - can_hold = list( - /obj/item/ammo_magazine, //Able to hold all ammo due to this box being unobtainable. admemes beware of the rocket crate. - ) - cant_hold = list() overlay_pixel_x = BOX_MAGAZINE_COMPACT_OFFSET_X overlay_pixel_y = BOX_MAGAZINE_COMPACT_OFFSET_Y amt_horizontal = BOX_MAGAZINE_COMPACT_COLUMNS amt_vertical = BOX_MAGAZINE_COMPACT_ROWS + storage_type = /datum/storage/box/visual/magazine/compact /obj/item/storage/box/visual/magazine/compact/update_stats() - for(var/item_path in can_hold) + for(var/item_path in storage_datum.can_hold) var/obj/item/I = item_path if(I) - max_storage_space = max(initial(I.w_class) * storage_slots, max_storage_space) - max_w_class = max(initial(I.w_class), max_w_class) + storage_datum.max_storage_space = max(initial(I.w_class) * storage_datum.storage_slots, storage_datum.max_storage_space) + storage_datum.max_w_class = max(initial(I.w_class), storage_datum.max_w_class) return ..() // --PREFILLED MAG BOXES-- @@ -710,9 +665,12 @@ name = "P-14 magazine box" desc = "A box specifically designed to hold a large amount of P-14 magazines." closed_overlay = "mag_box_small_overlay_p14" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_pistol/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol/standard_pistol, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_pistol/full spawn_number = 40 @@ -722,9 +680,12 @@ name = "P-23 magazine box" desc = "A box specifically designed to hold a large amount of P-23 magazines." closed_overlay = "mag_box_small_overlay_p23" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_heavypistol/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol/standard_heavypistol, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_heavypistol/full spawn_number = 40 @@ -734,9 +695,12 @@ name = "R-44 speedloader box" desc = "A box specifically designed to hold a large amount of R-44 speedloaders." closed_overlay = "mag_box_small_overlay_r44" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_revolver/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/revolver/standard_revolver, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_revolver/full spawn_number = 40 @@ -746,9 +710,12 @@ name = "P-17 magazine box" desc = "A box specifically designed to hold a large amount of P-17 magazines." closed_overlay = "mag_box_small_overlay_p17" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_pocketpistol/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol/standard_pocketpistol, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_pocketpistol/full spawn_number = 40 @@ -758,9 +725,12 @@ name = "88M4 magazine box" desc = "A box specifically designed to hold a large amount of 88M4 magazines." closed_overlay = "mag_box_small_overlay_88m4" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/vp70/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol/vp70, - ) + )) /obj/item/storage/box/visual/magazine/compact/vp70/full spawn_number = 40 @@ -771,9 +741,12 @@ name = ".40 rimfire ammo packet box" desc = "A box specifically designed to hold a large amount of .40 rimfire ammo packets." closed_overlay = "mag_box_small_overlay_derringer" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/derringer/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol/derringer, - ) + )) /obj/item/storage/box/visual/magazine/compact/derringer/full spawn_number = 40 @@ -783,9 +756,12 @@ name = "PP-7 plasma cell box" desc = "A box specifically designed to hold a large amount of PP-7 plasma cells." closed_overlay = "mag_box_small_overlay_pp7" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/plasma_pistol/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol/plasma_pistol, - ) + )) /obj/item/storage/box/visual/magazine/compact/plasma_pistol/full spawn_number = 40 @@ -797,9 +773,12 @@ name = "SMG-90 magazine box" desc = "A box specifically designed to hold a large amount of SMG-90 magazines." closed_overlay = "mag_box_small_overlay_smg90" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_smg/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/smg/standard_smg, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_smg/full spawn_number = 40 @@ -809,9 +788,12 @@ name = "MP-19 magazine box" desc = "A box specifically designed to hold a large amount of MP-19 magazines." closed_overlay = "mag_box_small_overlay_mp19" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_machinepistol/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/smg/standard_machinepistol, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_machinepistol/full spawn_number = 40 @@ -820,11 +802,14 @@ /obj/item/storage/box/visual/magazine/compact/pepperball name = "Pepperball canister box" desc = "A box specifically designed to hold a large amount of Pepperball canisters." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_pepperball" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/pepperball/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/pepperball, - ) + )) /obj/item/storage/box/visual/magazine/compact/pepperball/full spawn_number = 30 @@ -835,11 +820,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_assaultrifle name = "AR-12 magazine box" desc = "A box specifically designed to hold a large amount of AR-12 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_ar12" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_assaultrifle/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/standard_assaultrifle, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_assaultrifle/full spawn_number = 30 @@ -848,11 +836,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_carbine name = "AR-18 magazine box" desc = "A box specifically designed to hold a large amount of AR-18 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_ar18" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_carbine/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/standard_carbine, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_carbine/full spawn_number = 30 @@ -861,11 +852,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_skirmishrifle name = "AR-21 magazine box" desc = "A box specifically designed to hold a large amount of AR-21 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_ar21" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_skirmishrifle/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/standard_skirmishrifle, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_skirmishrifle/full spawn_number = 30 @@ -874,11 +868,14 @@ /obj/item/storage/box/visual/magazine/compact/ar11 name = "AR-11 magazine box" desc = "A box specifically designed to hold a large amount of AR-11 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_ar11" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/ar11/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/tx11, - ) + )) /obj/item/storage/box/visual/magazine/compact/ar11/full spawn_number = 30 @@ -887,11 +884,14 @@ /obj/item/storage/box/visual/magazine/compact/martini name = "Martini Henry ammo packet box" desc = "A box specifically designed to hold a large amount of Martini ammo packets." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_martini" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/martini/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/martini, - ) + )) /obj/item/storage/box/visual/magazine/compact/martini/full spawn_number = 30 @@ -900,12 +900,15 @@ /obj/item/storage/box/visual/magazine/compact/sh15 name = "SH-15 magazine box" desc = "A box specifically designed to hold a large amount of SH-15 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_sh15" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/sh15/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/tx15_flechette, /obj/item/ammo_magazine/rifle/tx15_slug, - ) + )) /obj/item/storage/box/visual/magazine/compact/sh15/flechette name = "SH-15 flechette magazine box" @@ -926,12 +929,15 @@ /obj/item/storage/box/visual/magazine/compact/sectoid_rifle name = "Suspicious glowing box" desc = "A purple glowing box with a big TOP SECRET label as well as conspiracy talkpoints printed topside. What a load of gibberish!" - storage_slots = 30 closed_overlay = "mag_box_small_overlay_sectoid_rifle" open_overlay = "mag_box_small_overlay_sectoid_rifle_open" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/sectoid_rifle/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/sectoid_rifle, - ) + )) /obj/item/storage/box/visual/magazine/compact/sectoid_rifle/examine(mob/user, distance, infix, suffix) . = ..() @@ -947,11 +953,14 @@ /obj/item/storage/box/visual/magazine/compact/lasrifle name = "LR-73 cell box" desc = "A box specifically designed to hold a large amount of TX-73 cells." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_tx73" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/lasrifle/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/cell/lasgun/lasrifle, - ) + )) /obj/item/storage/box/visual/magazine/compact/lasrifle/full spawn_number = 30 @@ -960,11 +969,14 @@ /obj/item/storage/box/visual/magazine/compact/lasrifle/marine name = "Terra Experimental cell box" desc = "A box specifically designed to hold a large amount of Terra Experimental cells." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_te" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/lasrifle/marine/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/cell/lasgun/lasrifle, - ) + )) /obj/item/storage/box/visual/magazine/compact/lasrifle/marine/full spawn_number = 30 @@ -975,11 +987,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_dmr name = "DMR-37 magazine box" desc = "A box specifically designed to hold a large amount of DMR-37 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_dmr37" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_dmr/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/standard_dmr, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_dmr/full spawn_number = 30 @@ -988,11 +1003,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_br name = "BR-64 magazine box" desc = "A box specifically designed to hold a large amount of BR-64 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_br64" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_br/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/standard_br, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_br/full spawn_number = 30 @@ -1001,11 +1019,14 @@ /obj/item/storage/box/visual/magazine/compact/chamberedrifle name = "SR-127 magazine box" desc = "A box specifically designed to hold a large amount of SR-127 magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_sr127" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/chamberedrifle/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/chamberedrifle, - ) + )) /obj/item/storage/box/visual/magazine/compact/chamberedrifle/full spawn_number = 30 @@ -1014,12 +1035,15 @@ /obj/item/storage/box/visual/magazine/compact/mosin name = "mosin packet box" desc = "A box specifically designed to hold a large amount of mosin packets." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_mosin" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/mosin/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle/bolt, /obj/item/ammo_magazine/rifle/boltclip, - ) + )) /obj/item/storage/box/visual/magazine/compact/mosin/packet/full spawn_number = 30 @@ -1034,11 +1058,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_lmg name = "MG-42 drum magazine box" desc = "A box specifically designed to hold a large amount of MG-42 drum magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_mg42" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_lmg/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/standard_lmg, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_lmg/full spawn_number = 30 @@ -1047,11 +1074,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_gpmg name = "MG-60 magazine box" desc = "A box specifically designed to hold a large amount of MG-60 box magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_mg60" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_gpmg/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/standard_gpmg, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_gpmg/full spawn_number = 30 @@ -1060,11 +1090,14 @@ /obj/item/storage/box/visual/magazine/compact/standard_mmg name = "MG-27 magazine box" desc = "A box specifically designed to hold a large amount of MG-27 box magazines." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_mg27" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/standard_mmg/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/standard_mmg, - ) + )) /obj/item/storage/box/visual/magazine/compact/standard_mmg/full spawn_number = 30 @@ -1074,11 +1107,14 @@ /obj/item/storage/box/visual/magazine/compact/heavymachinegun name = "HMG-08 drum box" desc = "A box specifically designed to hold a large amount of HMG-08 drum." - storage_slots = 30 closed_overlay = "mag_box_small_overlay_mg08" - can_hold = list( + +/obj/item/storage/box/visual/magazine/compact/heavymachinegun/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 30 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/heavymachinegun, - ) + )) /obj/item/storage/box/visual/magazine/compact/heavymachinegun/full spawn_number = 10 @@ -1089,17 +1125,11 @@ name = "grenade box" desc = "This box is able to hold a wide variety of grenades." icon_state = "grenade_box" - max_w_class = WEIGHT_CLASS_NORMAL - storage_slots = 25 - max_storage_space = 50 - can_hold = list( - /obj/item/explosive/grenade, - ) - cant_hold = list() overlay_pixel_x = BOX_GRENADE_OFFSET_X overlay_pixel_y = BOX_GRENADE_OFFSET_Y amt_horizontal = BOX_GRENADE_COLUMNS amt_vertical = BOX_GRENADE_ROWS + storage_type = /datum/storage/box/visual/grenade /obj/item/storage/box/visual/grenade/M15 name = "\improper M15 grenade box" @@ -1146,12 +1176,15 @@ /obj/item/storage/box/visual/grenade/phosphorus name = "\improper M40 HPDP grenade box" desc = "A secure box holding 15 M40 HPDP white phosphorous grenades. War crimes for the entire platoon!" - storage_slots = 25 - max_storage_space = 30 spawn_number = 25 spawn_type = /obj/item/explosive/grenade/phosphorus closed_overlay = "grenade_box_overlay_phosphorus" +/obj/item/storage/box/visual/grenade/phosphorus/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 25 + storage_datum.max_storage_space = 50 + /obj/item/storage/box/visual/grenade/impact name = "\improper M40 IMDP grenade box" desc = "A secure box holding 25 M40 IMDP impact grenades. High explosive, don't store near the flamer fuel." @@ -1190,20 +1223,26 @@ /obj/item/storage/box/visual/grenade/razorburn name = "razorburn grenade box" desc = "A secure box holding 15 razor burn grenades. Used for quick flank coverage." - storage_slots = 25 - max_storage_space = 30 spawn_number = 25 spawn_type = /obj/item/explosive/grenade/chem_grenade/razorburn_small closed_overlay = "grenade_box_overlay_razorburn" +/obj/item/storage/box/visual/grenade/razorburn/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 25 + storage_datum.max_storage_space = 50 + /obj/item/storage/box/visual/grenade/razorburn_large name = "razorburn canister box" desc = "A secure box holding 10 razorburn canisters. Used for quick flank coverage." - storage_slots = 10 spawn_number = 10 spawn_type = /obj/item/explosive/grenade/chem_grenade/razorburn_large closed_overlay = "grenade_box_overlay_razorburn_large" +/obj/item/storage/box/visual/grenade/razorburn_large/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 10 + /obj/item/storage/box/visual/grenade/teargas name = "\improper M66 teargas grenade box" desc = "A secure box holding 25 M66 tear gas grenades. Used for riot control." diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index ba9e334cd2650..1aca32a92db6a 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -8,8 +8,7 @@ throw_speed = 1 throw_range = 4 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 16 + storage_type = /datum/storage/briefcase /obj/item/storage/briefcase/standard_magnum name = "R-76 Magnum case" @@ -21,19 +20,9 @@ throw_speed = 1 throw_range = 4 w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 15 - storage_slots = 9 - storage_type_limits = list(/obj/item/weapon/gun = 1) - can_hold = list( - /obj/item/weapon/gun/revolver/standard_magnum, - /obj/item/attachable/stock/t76, - /obj/item/attachable/scope/standard_magnum, - /obj/item/ammo_magazine/revolver/standard_magnum, - ) + storage_type = /datum/storage/briefcase/standard_magnum -/obj/item/storage/briefcase/standard_magnum/gold/Initialize(mapload) - . = ..() +/obj/item/storage/briefcase/standard_magnum/gold/PopulateContents() new /obj/item/weapon/gun/revolver/standard_magnum/fancy/gold(src) new /obj/item/attachable/scope/standard_magnum(src) new /obj/item/attachable/stock/t76(src) @@ -44,8 +33,7 @@ new /obj/item/ammo_magazine/revolver/standard_magnum(src) new /obj/item/ammo_magazine/revolver/standard_magnum(src) -/obj/item/storage/briefcase/standard_magnum/silver/Initialize(mapload) - . = ..() +/obj/item/storage/briefcase/standard_magnum/silver/PopulateContents() new /obj/item/weapon/gun/revolver/standard_magnum/fancy/silver(src) new /obj/item/attachable/scope/standard_magnum(src) new /obj/item/attachable/stock/t76(src) @@ -56,8 +44,7 @@ new /obj/item/ammo_magazine/revolver/standard_magnum(src) new /obj/item/ammo_magazine/revolver/standard_magnum(src) -/obj/item/storage/briefcase/standard_magnum/nickle/Initialize(mapload) - . = ..() +/obj/item/storage/briefcase/standard_magnum/nickle/PopulateContents() new /obj/item/weapon/gun/revolver/standard_magnum/fancy/nickle(src) new /obj/item/attachable/scope/standard_magnum(src) new /obj/item/attachable/stock/t76(src) diff --git a/code/game/objects/items/storage/dispenser.dm b/code/game/objects/items/storage/dispenser.dm index 481c060426308..0746191505893 100644 --- a/code/game/objects/items/storage/dispenser.dm +++ b/code/game/objects/items/storage/dispenser.dm @@ -104,8 +104,8 @@ /obj/machinery/deployable/dispenser/disassemble(mob/user) var/obj/item/storage/internal_bag = get_internal_item() - for(var/mob/watching in internal_bag?.content_watchers) - internal_bag.close(watching) + for(var/mob/watching in internal_bag?.storage_datum.content_watchers) + internal_bag.storage_datum.close(watching) return ..() /obj/item/storage/backpack/dispenser @@ -114,8 +114,8 @@ icon = 'icons/obj/items/storage/storage_48.dmi' icon_state = "dispenser" equip_slot_flags = ITEM_SLOT_BACK - max_storage_space = 48 max_integrity = 250 + storage_type = /datum/storage/backpack/dispenser /obj/item/storage/backpack/dispenser/Initialize(mapload, ...) . = ..() @@ -124,14 +124,7 @@ /obj/item/storage/backpack/dispenser/attack_hand(mob/living/user) if(!CHECK_BITFIELD(item_flags, IS_DEPLOYED)) return ..() - open(user) - -/obj/item/storage/backpack/dispenser/open(mob/user) - if(CHECK_BITFIELD(item_flags, IS_DEPLOYED)) - return ..() - -/obj/item/storage/backpack/dispenser/attempt_draw_object(mob/living/user) - to_chat(usr, span_notice("You can't grab anything out of [src] while it's not deployed.")) + storage_datum.open(user) /obj/item/storage/backpack/dispenser/do_quick_equip(mob/user) to_chat(usr, span_notice("You can't grab anything out of [src] while it's not deployed.")) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 284c40bb780fd..be6b992f469e4 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -21,9 +21,9 @@ var/spawn_number /obj/item/storage/fancy/Initialize(mapload, ...) - if(spawn_type) - can_hold = list(spawn_type) // must be set before parent init for typecacheof . = ..() + if(spawn_type) + storage_datum.set_holdable(can_hold_list = list(spawn_type)) if(spawn_type) for(var/i in 1 to spawn_number) new spawn_type(src) @@ -32,12 +32,6 @@ . = ..() icon_state = "[icon_type]box[length(contents)]" -/obj/item/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, mob/user) - . = ..() - if(.) - update_icon() - - /obj/item/storage/fancy/examine(mob/user) . = ..() switch(length(contents)) @@ -48,25 +42,25 @@ if(2 to INFINITY) . += "There are [length(contents)] [icon_type]s in the box." - /* * Egg Box */ - /obj/item/storage/fancy/egg_box icon = 'icons/obj/items/food/packaged.dmi' icon_state = "eggbox" icon_type = "egg" name = "egg box" - storage_slots = 12 - max_storage_space = 24 spawn_type = /obj/item/reagent_containers/food/snacks/egg spawn_number = 12 +/obj/item/storage/fancy/egg_box/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 12 + storage_datum.max_storage_space = 24 + /* * Candle Box */ - /obj/item/storage/fancy/candle_box name = "candle pack" desc = "A pack of red candles." @@ -74,28 +68,32 @@ icon_state = "candlebox5" icon_type = "candle" item_state = "candlebox5" - storage_slots = 5 throwforce = 2 equip_slot_flags = ITEM_SLOT_BELT spawn_type = /obj/item/tool/candle spawn_number = 5 +/obj/item/storage/fancy/candle_box/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 5 + /* * Crayon Box */ - /obj/item/storage/fancy/crayons name = "box of crayons" desc = "A box of crayons for all your rune drawing needs." icon = 'icons/obj/items/crayons.dmi' icon_state = "crayonbox" w_class = WEIGHT_CLASS_SMALL - storage_slots = 6 icon_type = "crayon" - can_hold = list(/obj/item/toy/crayon) /obj/item/storage/fancy/crayons/Initialize(mapload) . = ..() + storage_datum.storage_slots = 6 + storage_datum.set_holdable(can_hold_list = list(/obj/item/toy/crayon)) + +/obj/item/storage/fancy/crayons/PopulateContents() new /obj/item/toy/crayon/red(src) new /obj/item/toy/crayon/orange(src) new /obj/item/toy/crayon/yellow(src) @@ -135,18 +133,18 @@ w_class = WEIGHT_CLASS_TINY throwforce = 2 equip_slot_flags = ITEM_SLOT_BELT - max_storage_space = 18 - storage_slots = 18 - can_hold = list( - /obj/item/clothing/mask/cigarette, - /obj/item/tool/lighter, - ) icon_type = "cigarette" + spawn_type = /obj/item/clothing/mask/cigarette + spawn_number = 18 /obj/item/storage/fancy/cigarettes/Initialize(mapload, ...) . = ..() - for(var/i in 1 to storage_slots) - new /obj/item/clothing/mask/cigarette(src) + storage_datum.max_storage_space = 18 + storage_datum.storage_slots = 18 + storage_datum.set_holdable(can_hold_list = list( + /obj/item/clothing/mask/cigarette, + /obj/item/tool/lighter, + )) /obj/item/storage/fancy/cigarettes/update_icon_state() . = ..() @@ -159,7 +157,7 @@ if(M == user && user.zone_selected == "mouth" && length(contents) > 0 && !user.wear_mask) var/obj/item/clothing/mask/cigarette/C = locate() in src if(C) - remove_from_storage(C, get_turf(user), user) + storage_datum.remove_from_storage(C, get_turf(user), user) user.equip_to_slot_if_possible(C, SLOT_WEAR_MASK) to_chat(user, span_notice("You take a cigarette out of the pack.")) update_icon() @@ -175,18 +173,19 @@ w_class = WEIGHT_CLASS_TINY throwforce = 2 equip_slot_flags = ITEM_SLOT_BELT - max_storage_space = 18 - storage_slots = 18 - can_hold = list( - /obj/item/clothing/mask/cigarette, - /obj/item/tool/lighter, - /obj/item/storage/box/matches, - ) icon_type = "chempacket" /obj/item/storage/fancy/chemrettes/Initialize(mapload, ...) . = ..() + storage_datum.max_storage_space = 18 + storage_datum.storage_slots = 18 + storage_datum.set_holdable(can_hold_list = list( + /obj/item/clothing/mask/cigarette, + /obj/item/tool/lighter, + /obj/item/storage/box/matches, + )) +/obj/item/storage/fancy/chemrettes/PopulateContents() for(var/i in 1 to 3) new /obj/item/clothing/mask/cigarette/bica(src) for(var/i in 1 to 3) @@ -195,7 +194,6 @@ new /obj/item/clothing/mask/cigarette/tram(src) for(var/i in 1 to 5) new /obj/item/clothing/mask/cigarette/antitox(src) - new /obj/item/tool/lighter(src) /obj/item/storage/fancy/chemrettes/update_icon_state() @@ -236,16 +234,18 @@ throwforce = 2 w_class = WEIGHT_CLASS_SMALL equip_slot_flags = ITEM_SLOT_BELT - storage_slots = 7 spawn_type = /obj/item/clothing/mask/cigarette/cigar spawn_number = 7 icon_type = "cigar" +/obj/item/storage/fancy/cigar/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 7 + /obj/item/storage/fancy/cigar/update_icon_state() . = ..() icon_state = "[initial(icon_state)][length(contents)]" - /obj/item/storage/fancy/cigar/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M, /mob)) return @@ -253,7 +253,7 @@ if(M == user && user.zone_selected == "mouth" && length(contents) > 0 && !user.wear_mask) var/obj/item/clothing/mask/cigarette/cigar/C = locate() in src if(C) - remove_from_storage(C, get_turf(user), user) + storage_datum.remove_from_storage(C, get_turf(user), user) user.equip_to_slot_if_possible(C, SLOT_WEAR_MASK) to_chat(user, span_notice("You take a cigar out of the case.")) update_icon() @@ -263,13 +263,11 @@ /* * Vial Box */ - /obj/item/storage/fancy/vials icon = 'icons/obj/items/storage/vialbox.dmi' icon_state = "vialbox6" icon_type = "vial" name = "vial storage box" - storage_slots = 6 spawn_type = /obj/item/reagent_containers/glass/beaker/vial spawn_number = 6 @@ -282,14 +280,14 @@ icon = 'icons/obj/items/storage/vialbox.dmi' icon_state = "vialbox0" item_state = "syringe_kit" - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list(/obj/item/reagent_containers/glass/beaker/vial) - max_storage_space = 14 //The sum of the w_classes of all the items in this storage item. - storage_slots = 6 req_access = list(ACCESS_MARINE_MEDBAY) /obj/item/storage/lockbox/vials/Initialize(mapload, ...) . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.set_holdable(can_hold_list = list(/obj/item/reagent_containers/glass/beaker/vial)) + storage_datum.max_storage_space = 14 //The sum of the w_classes of all the items in this storage item. + storage_datum.storage_slots = 6 update_icon() /obj/item/storage/lockbox/vials/update_icon_state() diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 15f8160f1bea9..e488cc60dfc63 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -16,19 +16,22 @@ slot_r_hand_str = 'icons/mob/inhands/equipment/medkits_right.dmi', ) icon_state = "firstaid" - use_sound = 'sound/effects/toolbox.ogg' w_class = WEIGHT_CLASS_BULKY throw_speed = 2 throw_range = 8 - cant_hold = list( - /obj/item/ammo_magazine, - /obj/item/explosive/grenade, - ) - var/empty = FALSE //whether the kit starts empty - var/icon_full //icon state to use when kit is full + ///whether the kit starts empty + var/empty = FALSE + ///icon state to use when kit is full + var/icon_full /obj/item/storage/firstaid/Initialize(mapload, ...) . = ..() + storage_datum.use_sound = 'sound/effects/toolbox.ogg' + storage_datum.set_holdable(cant_hold_list = list( + /obj/item/ammo_magazine, + /obj/item/explosive/grenade, + )) + icon_full = icon_state if(empty) icon_state = icon_state += "_empty" @@ -152,15 +155,17 @@ icon_state = "syringe_case" throw_speed = 2 throw_range = 8 - storage_slots = 3 w_class = WEIGHT_CLASS_SMALL - can_hold = list( + +/obj/item/storage/syringe_case/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 3 + storage_datum.set_holdable(can_hold_list = list( /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/syringe, - ) + )) -/obj/item/storage/syringe_case/empty/Initialize(mapload, ...) - . = ..() +/obj/item/storage/syringe_case/empty/PopulateContents() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/empty(src) new /obj/item/reagent_containers/glass/bottle/empty(src) @@ -170,7 +175,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains basic meds." /obj/item/storage/syringe_case/regular/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/inaprovaline(src) new /obj/item/reagent_containers/glass/bottle/tricordrazine(src) @@ -180,7 +184,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains meds designed to treat burns." /obj/item/storage/syringe_case/burn/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/kelotane(src) new /obj/item/reagent_containers/glass/bottle/oxycodone(src) @@ -190,7 +193,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains meds designed to treat toxins." /obj/item/storage/syringe_case/tox/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/dylovene(src) new /obj/item/reagent_containers/glass/bottle/hypervene(src) @@ -200,7 +202,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains meds designed to treat oxygen deprivation." /obj/item/storage/syringe_case/oxy/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/inaprovaline(src) new /obj/item/reagent_containers/glass/bottle/dexalin(src) @@ -210,7 +211,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains Meralyne." /obj/item/storage/syringe_case/meralyne/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/meralyne(src) new /obj/item/reagent_containers/glass/bottle/meralyne(src) @@ -220,7 +220,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains Dermaline." /obj/item/storage/syringe_case/dermaline/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/dermaline(src) new /obj/item/reagent_containers/glass/bottle/dermaline(src) @@ -230,7 +229,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains Meraderm." /obj/item/storage/syringe_case/meraderm/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/meraderm(src) new /obj/item/reagent_containers/glass/bottle/meraderm(src) @@ -240,7 +238,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains nanoblood." /obj/item/storage/syringe_case/nanoblood/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/nanoblood(src) new /obj/item/reagent_containers/glass/bottle/nanoblood(src) @@ -250,7 +247,6 @@ desc = "It's a medical case for storing syringes and bottles. This one contains Tricordrazine." /obj/item/storage/syringe_case/tricordrazine/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe(src) new /obj/item/reagent_containers/glass/bottle/tricordrazine(src) new /obj/item/reagent_containers/glass/bottle/tricordrazine(src) @@ -272,28 +268,17 @@ ) item_state = "contsolid" w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/reagent_containers/pill, - /obj/item/toy/dice, - /obj/item/paper, - ) - allow_quick_gather = 1 - use_to_pickup = 1 - storage_slots = null - use_sound = 'sound/items/pillbottle.ogg' - max_storage_space = 16 greyscale_config = /datum/greyscale_config/pillbottle greyscale_colors = "#d9cd07#f2cdbb" //default colors - var/pill_type_to_fill //type of pill to use to fill in the bottle in New() - /// Short description in overlay + storage_type = /datum/storage/pill_bottle + ///What kind of pill we are filling our pill bottle with + var/pill_type_to_fill + ///Short description in overlay var/description_overlay = "" - refill_types = list(/obj/item/storage/pill_bottle) - refill_sound = 'sound/items/pills.ogg' -/obj/item/storage/pill_bottle/Initialize(mapload, ...) - . = ..() +/obj/item/storage/pill_bottle/PopulateContents() if(pill_type_to_fill) - for(var/i in 1 to max_storage_space) + for(var/i in 1 to storage_datum.max_storage_space) new pill_type_to_fill(src) update_icon() @@ -303,7 +288,7 @@ return if(length(contents)) var/obj/item/I = contents[1] - if(!remove_from_storage(I,user,user)) + if(!storage_datum.remove_from_storage(I,user,user)) return if(user.put_in_inactive_hand(I)) if(iscarbon(user)) @@ -314,11 +299,6 @@ to_chat(user, span_notice("You fumble around with \the [src] and drop a pill on the floor.")) return -/obj/item/storage/pill_bottle/remove_from_storage(obj/item/item, atom/new_location, mob/user) - . = ..() - if(. && user) - playsound(user, 'sound/items/pills.ogg', 15, 1) - /obj/item/storage/pill_bottle/update_overlays() . = ..() if(isturf(loc)) @@ -352,7 +332,10 @@ pill_type_to_fill = /obj/item/reagent_containers/pill/kelotane greyscale_colors = "#CC9900#FFFFFF" description_overlay = "Ke" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/kelotane/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/dermaline name = "dermaline pill bottle" @@ -368,7 +351,10 @@ pill_type_to_fill = /obj/item/reagent_containers/pill/dylovene greyscale_colors = "#669900#ffffff" description_overlay = "Dy" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/dylovene/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/isotonic name = "isotonic pill bottle" @@ -376,7 +362,10 @@ pill_type_to_fill = /obj/item/reagent_containers/pill/isotonic greyscale_colors = "#5c0e0e#ffffff" description_overlay = "Is" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/isotonic/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/inaprovaline name = "inaprovaline pill bottle" @@ -392,7 +381,10 @@ pill_type_to_fill = /obj/item/reagent_containers/pill/tramadol greyscale_colors = "#8a8686#ffffff" description_overlay = "Ta" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/tramadol/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/paracetamol name = "paracetamol pill bottle" @@ -402,7 +394,10 @@ greyscale_config = /datum/greyscale_config/pillbottlebox greyscale_colors = "#f8f4f8#ffffff" description_overlay = "Pa" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/paracetamol/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/spaceacillin name = "spaceacillin pill bottle" @@ -418,7 +413,10 @@ pill_type_to_fill = /obj/item/reagent_containers/pill/bicaridine greyscale_colors = "#DA0000#ffffff" description_overlay = "Bi" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/bicaridine/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/meralyne name = "meralyne pill bottle" @@ -487,22 +485,32 @@ greyscale_colors = "#f8f8f8#ffffff" greyscale_config = /datum/greyscale_config/pillbottleround description_overlay = "Ti" - storage_flags = BYPASS_VENDOR_CHECK + +/obj/item/storage/pill_bottle/tricordrazine/Initialize(mapload, ...) + . = ..() + storage_datum.storage_flags = BYPASS_VENDOR_CHECK /obj/item/storage/pill_bottle/happy name = "happy pill bottle" desc = "Contains highly illegal drugs. When you want to see the rainbow." - max_storage_space = 7 pill_type_to_fill = /obj/item/reagent_containers/pill/happy greyscale_colors = "#6C52BF#ffffff" +/obj/item/storage/pill_bottle/happy/Initialize(mapload, ...) + . = ..() + storage_datum.max_storage_space = 7 + /obj/item/storage/pill_bottle/zoom name = "zoom pill bottle" desc = "Containts highly illegal drugs. Trade heart for speed." - max_storage_space = 7 + pill_type_to_fill = /obj/item/reagent_containers/pill/zoom greyscale_colors = "#ef3ad4#ffffff" +/obj/item/storage/pill_bottle/zoom/Initialize(mapload, ...) + . = ..() + storage_datum.max_storage_space = 7 + /obj/item/storage/pill_bottle/attackby(obj/item/I, mob/user, params) . = ..() if(.) diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm index 3c981a63d7060..2ce0318a7c7d7 100644 --- a/code/game/objects/items/storage/holsters.dm +++ b/code/game/objects/items/storage/holsters.dm @@ -1,16 +1,17 @@ +/*! + * Contains holster subtype, which is a form of storage with a snowflake item we are particularly interested in + */ + +// HEY, if you have some time to kill, consider moving all this snowflake stuff from holsters to be purely handled by /datum/storage + ///Parent item for all holster type storage items /obj/item/storage/holster name = "holster" desc = "Holds stuff, and sometimes goes swoosh." icon_state = "backpack" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY ///normally the special item will be larger than what should fit. Child items will have lower limits and an override - storage_slots = 1 - max_storage_space = 4 equip_slot_flags = ITEM_SLOT_BACK - draw_mode = 1 - allow_drawing_method = TRUE - storage_type_limits = list(/obj/item/weapon = 1) + storage_type = /datum/storage/holster ///the sound produced when the special item is drawn var/draw_sound = 'sound/weapons/guns/misc/rifle_draw.ogg' ///the sound produced when the special item is sheathed @@ -22,6 +23,14 @@ ///Image that get's underlayed under the sprite of the holster var/image/holstered_item_underlay +/obj/item/storage/holster/Initialize(mapload, ...) + . = ..() + storage_datum.draw_sound = src.draw_sound + storage_datum.sheathe_sound = src.sheathe_sound + storage_datum.holsterable_allowed = src.holsterable_allowed + storage_datum.holstered_item = src.holstered_item + storage_datum.holstered_item_underlay = src.holstered_item_underlay + /obj/item/storage/holster/equipped(mob/user, slot) if (slot == SLOT_BACK || slot == SLOT_BELT || slot == SLOT_S_STORE || slot == SLOT_L_STORE || slot == SLOT_R_STORE ) //add more if needed mouse_opacity = MOUSE_OPACITY_OPAQUE //so it's easier to click when properly equipped. @@ -38,37 +47,6 @@ QDEL_NULL(holstered_item) return ..() -/obj/item/storage/holster/should_access_delay(obj/item/item, mob/user, taking_out) //defaults to 0 - if (!taking_out) // Always allow items to be tossed in instantly - return FALSE - if(ishuman(user)) - var/mob/living/carbon/human/human_user = user - if(human_user.back == src) - return TRUE - return FALSE - -/obj/item/storage/holster/handle_item_insertion(obj/item/W, prevent_warning = 0) - . = ..() - if(!. || !is_type_in_list(W,holsterable_allowed)) //check to see if the item being inserted is the snowflake item - return - holstered_item = W - update_icon() //So that the icon actually updates after we've assigned our holstered_item - playsound(src, sheathe_sound, 15, 1) - -/obj/item/storage/holster/remove_from_storage(obj/item/W, atom/new_location, mob/user) - . = ..() - if(!. || !is_type_in_list(W,holsterable_allowed)) //check to see if the item being removed is the snowflake item - return - holstered_item = null - update_icon() //So that the icon actually updates after we've assigned our holstered_item - playsound(src, draw_sound, 15, 1) - -/obj/item/storage/holster/attack_hand(mob/living/user) //Prioritizes our snowflake item on unarmed click - if(holstered_item && ishuman(user) && loc == user) - holstered_item.attack_hand(user) - else - return ..() - /obj/item/storage/holster/update_icon_state() . = ..() if(holstered_item) @@ -88,13 +66,12 @@ user.update_inv_belt() user.update_inv_s_store() - ///Adds or removes underlay sprites, checks holstered_item to see which underlay to add /obj/item/storage/holster/proc/update_underlays() if(holstered_item && !holstered_item_underlay) holstered_item_underlay = image(icon, src, holstered_item.icon_state) underlays += holstered_item_underlay - else + else if(!holstered_item) //Only delete the underlay once our actual holstered item is gone underlays -= holstered_item_underlay QDEL_NULL(holstered_item_underlay) @@ -102,12 +79,12 @@ if(!holstered_item) return FALSE var/obj/item/W = holstered_item - if(!remove_from_storage(W, null, user)) + if(!storage_datum.remove_from_storage(W, null, user)) return FALSE return W /obj/item/storage/holster/vendor_equip(mob/user) - ..() + . = ..() return user.equip_to_appropriate_slot(src) //backpack type holster items @@ -125,21 +102,19 @@ "Hammerhead Combat Robot" = 'icons/mob/species/robot/backpack.dmi', "Ratcher Combat Robot" = 'icons/mob/species/robot/backpack.dmi', ) - max_w_class = WEIGHT_CLASS_NORMAL //normal items - max_storage_space = 24 - access_delay = 1.5 SECONDS ///0 out for satchel types + storage_type = /datum/storage/holster/backholster //only applies on storage of all items, not withdrawal /obj/item/storage/holster/backholster/attackby(obj/item/I, mob/user, params) . = ..() - if (use_sound) - playsound(loc, use_sound, 15, 1, 6) + if(storage_datum.use_sound) + playsound(loc, storage_datum.use_sound, 15, 1, 6) /obj/item/storage/holster/backholster/equipped(mob/user, slot) if (slot == SLOT_BACK) mouse_opacity = MOUSE_OPACITY_OPAQUE //so it's easier to click when properly equipped. - if(use_sound) - playsound(loc, use_sound, 15, 1, 6) + if(storage_datum.use_sound) + playsound(loc, storage_datum.use_sound, 15, 1, 6) return ..() ///RR bag @@ -148,20 +123,11 @@ desc = "This backpack can hold 4 67mm shells, in addition to a recoiless launcher." icon_state = "marine_rocket" w_class = WEIGHT_CLASS_HUGE - storage_slots = 5 - max_w_class = WEIGHT_CLASS_BULKY - access_delay = 0.5 SECONDS + storage_type = /datum/storage/holster/backholster/rpg holsterable_allowed = list( /obj/item/weapon/gun/launcher/rocket/recoillessrifle, /obj/item/weapon/gun/launcher/rocket/recoillessrifle/low_impact, ) - bypass_w_limit = list(/obj/item/weapon/gun/launcher/rocket/recoillessrifle) - ///only one RR per bag - storage_type_limits = list(/obj/item/weapon/gun/launcher/rocket/recoillessrifle = 1) - can_hold = list( - /obj/item/ammo_magazine/rocket, - /obj/item/weapon/gun/launcher/rocket/recoillessrifle, - ) sprite_sheets = list( "Combat Robot" = 'icons/mob/species/robot/backpack.dmi', "Sterling Combat Robot" = 'icons/mob/species/robot/backpack.dmi', @@ -170,32 +136,29 @@ "Ratcher Combat Robot" = 'icons/mob/species/robot/backpack.dmi', ) -/obj/item/storage/holster/backholster/rpg/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/rpg/full/PopulateContents() new /obj/item/ammo_magazine/rocket/recoilless/light(src) new /obj/item/ammo_magazine/rocket/recoilless/light(src) new /obj/item/ammo_magazine/rocket/recoilless(src) new /obj/item/ammo_magazine/rocket/recoilless(src) var/obj/item/new_item = new /obj/item/weapon/gun/launcher/rocket/recoillessrifle(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) -/obj/item/storage/holster/backholster/rpg/low_impact/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/rpg/low_impact/PopulateContents() new /obj/item/ammo_magazine/rocket/recoilless/low_impact(src) new /obj/item/ammo_magazine/rocket/recoilless/low_impact(src) new /obj/item/ammo_magazine/rocket/recoilless/low_impact(src) new /obj/item/ammo_magazine/rocket/recoilless/low_impact(src) var/obj/item/new_item = new /obj/item/weapon/gun/launcher/rocket/recoillessrifle/low_impact(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) -/obj/item/storage/holster/backholster/rpg/heam/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/rpg/heam/PopulateContents() new /obj/item/ammo_magazine/rocket/recoilless/heam(src) new /obj/item/ammo_magazine/rocket/recoilless/heam(src) new /obj/item/ammo_magazine/rocket/recoilless/heam(src) new /obj/item/ammo_magazine/rocket/recoilless/heam(src) var/obj/item/new_item = new /obj/item/weapon/gun/launcher/rocket/recoillessrifle/heam(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/backholster/rpg/som name = "\improper SOM RPG bag" @@ -205,60 +168,39 @@ /obj/item/weapon/gun/launcher/rocket/som, /obj/item/weapon/gun/launcher/rocket/som/rad, ) - bypass_w_limit = list(/obj/item/weapon/gun/launcher/rocket/som) - storage_type_limits = list(/obj/item/weapon/gun/launcher/rocket/som = 1) - can_hold = list( - /obj/item/ammo_magazine/rocket, - /obj/item/weapon/gun/launcher/rocket/som, - ) + storage_type = /datum/storage/holster/backholster/rpg/som -/obj/item/storage/holster/backholster/rpg/som/war_crimes/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/rpg/som/war_crimes/PopulateContents() new /obj/item/ammo_magazine/rocket/som/incendiary(src) new /obj/item/ammo_magazine/rocket/som/incendiary(src) new /obj/item/ammo_magazine/rocket/som/rad(src) new /obj/item/ammo_magazine/rocket/som/rad(src) var/obj/item/new_item = new /obj/item/weapon/gun/launcher/rocket/som/rad(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) -/obj/item/storage/holster/backholster/rpg/som/ert/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/rpg/som/ert/PopulateContents() new /obj/item/ammo_magazine/rocket/som/thermobaric(src) new /obj/item/ammo_magazine/rocket/som/thermobaric(src) new /obj/item/ammo_magazine/rocket/som/heat(src) new /obj/item/ammo_magazine/rocket/som/rad(src) var/obj/item/new_item = new /obj/item/weapon/gun/launcher/rocket/som/rad(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) -/obj/item/storage/holster/backholster/rpg/som/heat/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/rpg/som/heat/PopulateContents() new /obj/item/ammo_magazine/rocket/som/heat(src) new /obj/item/ammo_magazine/rocket/som/heat(src) new /obj/item/ammo_magazine/rocket/som/heat(src) new /obj/item/ammo_magazine/rocket/som/heat(src) var/obj/item/new_item = new /obj/item/weapon/gun/launcher/rocket/som/heat(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/backholster/mortar name = "\improper TGMC mortar bag" desc = "This backpack can hold 11 80mm mortar shells, in addition to the mortar itself." icon_state = "marinepackt" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - storage_slots = null - max_storage_space = 30 - access_delay = 0 holsterable_allowed = list(/obj/item/mortar_kit) - bypass_w_limit = list(/obj/item/mortar_kit) - storage_type_limits = list(/obj/item/mortar_kit = 1) - can_hold = list( - /obj/item/mortal_shell/he, - /obj/item/mortal_shell/incendiary, - /obj/item/mortal_shell/smoke, - /obj/item/mortal_shell/flare, - /obj/item/mortal_shell/plasmaloss, - /obj/item/mortar_kit, - ) + storage_type = /datum/storage/holster/backholster/mortar sprite_sheets = list( "Combat Robot" = 'icons/mob/species/robot/backpack.dmi', @@ -268,24 +210,17 @@ "Ratcher Combat Robot" = 'icons/mob/species/robot/backpack.dmi', ) - -/obj/item/storage/holster/backholster/mortar/full/Initialize() - . = ..() +/obj/item/storage/holster/backholster/mortar/full/PopulateContents() var/obj/item/new_item = new /obj/item/mortar_kit(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/backholster/flamer name = "\improper TGMC flamethrower bag" desc = "This backpack can carry its accompanying flamethrower as well as a modest general storage capacity. Automatically refuels it's accompanying flamethrower." icon_state = "pyro_bag" w_class = WEIGHT_CLASS_BULKY - storage_slots = null - max_storage_space = 16 - max_w_class = WEIGHT_CLASS_NORMAL - access_delay = 0 holsterable_allowed = list(/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer) - bypass_w_limit = list(/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer) - storage_type_limits = list(/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer = 1) + storage_type = /datum/storage/holster/backholster/flamer ///The internal fuel tank var/obj/item/ammo_magazine/flamer_tank/internal/tank @@ -315,13 +250,6 @@ if(istype(O,/obj/item/ammo_magazine/flamer_tank)) refuel(O, user) -/obj/item/storage/holster/backholster/flamer/handle_item_insertion(obj/item/item, prevent_warning = 0, mob/user) - . = ..() - if(holstered_item == item) - var/obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer/flamer = item - refuel(flamer.chamber_items[1], user) - flamer.update_ammo_count() - /* Used to refuel the attached FL-86 flamer when it is put into the backpack * * param1 - The flamer tank, the actual tank we are refilling @@ -349,10 +277,9 @@ . = ..() . += "[tank.current_rounds] units of fuel left!" -/obj/item/storage/holster/backholster/flamer/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/backholster/flamer/full/PopulateContents() var/flamer = new /obj/item/weapon/gun/flamer/big_flamer/marinestandard/engineer(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), flamer) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), flamer) //one slot holsters @@ -371,23 +298,24 @@ /obj/item/weapon/claymore/mercsword/machete, /obj/item/weapon/claymore/harvester, ) - can_hold = list( + +/obj/item/storage/holster/blade/machete/Initialize(mapload) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/claymore/mercsword/machete, /obj/item/weapon/claymore/harvester, - ) + )) -/obj/item/storage/holster/blade/machete/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/blade/machete/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/claymore/mercsword/machete(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/blade/machete/full_harvester name = "H5 Pattern M2132 harvester scabbard" -/obj/item/storage/holster/blade/machete/full_harvester/Initialize(mapload) - . = ..() +/obj/item/storage/holster/blade/machete/full_harvester/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/claymore/harvester(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/blade/katana name = "\improper katana scabbard" @@ -397,12 +325,14 @@ attack_verb = list("bludgeoned", "struck", "cracked") equip_slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_BACK holsterable_allowed = list(/obj/item/weapon/katana) - can_hold = list(/obj/item/weapon/katana) /obj/item/storage/holster/blade/katana/full/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list(/obj/item/weapon/katana)) + +/obj/item/storage/holster/blade/katana/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/katana(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/blade/officer name = "\improper officer sword scabbard" @@ -410,12 +340,14 @@ icon_state = "officer_sheath" equip_slot_flags = ITEM_SLOT_BELT holsterable_allowed = list(/obj/item/weapon/claymore/mercsword/machete/officersword) - can_hold = list(/obj/item/weapon/claymore/mercsword/machete/officersword) /obj/item/storage/holster/blade/officer/full/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list(/obj/item/weapon/claymore/mercsword/machete/officersword)) + +/obj/item/storage/holster/blade/officer/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/claymore/mercsword/machete/officersword(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) //guns @@ -427,29 +359,34 @@ /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/pump, ) - can_hold = list( - /obj/item/weapon/gun/shotgun/combat, - /obj/item/weapon/gun/shotgun/pump, - ) /obj/item/storage/holster/m37/full/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list( + /obj/item/weapon/gun/shotgun/combat, + /obj/item/weapon/gun/shotgun/pump, + )) + +/obj/item/storage/holster/m37/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/gun/shotgun/pump(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/t35 name = "\improper L44 SH-35 scabbard" desc = "A large leather holster allowing the storage of an SH-35 Shotgun. It contains harnesses that allow it to be secured to the back for easy storage." icon_state = "t35_holster" holsterable_allowed = list(/obj/item/weapon/gun/shotgun/pump/t35) - can_hold = list( - /obj/item/weapon/gun/shotgun/pump/t35, - ) + /obj/item/storage/holster/t35/full/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list( + /obj/item/weapon/gun/shotgun/pump/t35, + )) + +/obj/item/storage/holster/t35/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/gun/shotgun/pump/t35(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/m25 name = "\improper M276 pattern M25 holster rig" @@ -461,12 +398,14 @@ /obj/item/weapon/gun/smg/m25, /obj/item/weapon/gun/smg/m25/holstered, ) - can_hold = list(/obj/item/weapon/gun/smg/m25) /obj/item/storage/holster/m25/full/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list(/obj/item/weapon/gun/smg/m25)) + +/obj/item/storage/holster/m25/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/gun/smg/m25(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/t19 name = "\improper M276 pattern MP-19 holster rig" @@ -479,38 +418,20 @@ /obj/item/weapon/gun/smg/standard_machinepistol/compact, /obj/item/weapon/gun/smg/standard_machinepistol/vgrip, ) + storage_type = /datum/storage/holster/t19 - storage_slots = 4 - max_storage_space = 10 - max_w_class = WEIGHT_CLASS_BULKY - - can_hold = list( - /obj/item/weapon/gun/smg/standard_machinepistol, - /obj/item/ammo_magazine/smg/standard_machinepistol, - ) - -/obj/item/storage/holster/t19/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/t19/full/PopulateContents() var/obj/item/new_item = new /obj/item/weapon/gun/smg/standard_machinepistol(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_item) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_item) /obj/item/storage/holster/flarepouch name = "flare pouch" desc = "A pouch designed to hold flares and a single flaregun. Refillable with a M94 flare pack." equip_slot_flags = ITEM_SLOT_POCKET - storage_slots = 28 - max_storage_space = 28 icon = 'icons/Marine/marine-pouches.dmi' icon_state = "flare" - storage_type_limits = list(/obj/item/weapon/gun/grenade_launcher/single_shot/flare = 1) - can_hold = list( - /obj/item/explosive/grenade/flare/civilian, - /obj/item/weapon/gun/grenade_launcher/single_shot/flare, - /obj/item/explosive/grenade/flare, - ) - refill_types = list(/obj/item/storage/box/m94) - refill_sound = "rustle" holsterable_allowed = list(/obj/item/weapon/gun/grenade_launcher/single_shot/flare/marine) + storage_type = /datum/storage/holster/flarepouch /obj/item/storage/holster/flarepouch/attackby_alternate(obj/item/I, mob/user, params) if(!istype(I, /obj/item/weapon/gun/grenade_launcher/single_shot/flare)) @@ -519,16 +440,15 @@ if(flare_gun.in_chamber) return for(var/obj/item/flare in contents) - remove_from_storage(flare, get_turf(user), user) + storage_datum.remove_from_storage(flare, get_turf(user), user) user.put_in_any_hand_if_possible(flare) flare_gun.reload(flare, user) return -/obj/item/storage/holster/flarepouch/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/flarepouch/full/PopulateContents() var/obj/item/flare_gun = new /obj/item/weapon/gun/grenade_launcher/single_shot/flare/marine(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), flare_gun) - for(var/i in 1 to (storage_slots-flare_gun.w_class)) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), flare_gun) + for(var/i in 1 to (storage_datum.storage_slots-flare_gun.w_class)) new /obj/item/explosive/grenade/flare(src) @@ -536,26 +456,18 @@ name = "\improper ML-41 scabbard (10x26mm)" desc = "A backpack holster allowing the storage of any a ML-41 Assault Machinegun, also carries ammo for the other portion of the system." icon_state = "icc_bagmg" - storage_slots = 5 - max_storage_space = 16 holsterable_allowed = list( /obj/item/weapon/gun/rifle/icc_mg, ) - can_hold = list( - /obj/item/weapon/gun/rifle/icc_mg, - /obj/item/ammo_magazine/icc_mg/packet, - ) + storage_type = /datum/storage/holster/icc_mg -/obj/item/storage/holster/icc_mg/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/icc_mg/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/rifle/icc_mg(src) new /obj/item/ammo_magazine/icc_mg/packet(src) new /obj/item/ammo_magazine/icc_mg/packet(src) new /obj/item/ammo_magazine/icc_mg/packet(src) new /obj/item/ammo_magazine/icc_mg/packet(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) - - + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) ////////////////////////////// GUN BELTS ///////////////////////////////////// @@ -566,21 +478,9 @@ icon_state = "m4a3_holster" equip_slot_flags = ITEM_SLOT_BELT item_flags = HAS_UNDERLAY - use_sound = null - storage_slots = 7 - max_storage_space = 15 - max_w_class = WEIGHT_CLASS_NORMAL + storage_type = /datum/storage/holster/belt sheathe_sound = 'sound/weapons/guns/misc/pistol_sheathe.ogg' draw_sound = 'sound/weapons/guns/misc/pistol_draw.ogg' - can_hold = list( - /obj/item/weapon/gun/pistol, - /obj/item/ammo_magazine/pistol, - /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, - /obj/item/cell/lasgun/plasma, - /obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta, - /obj/item/cell/lasgun/lasrifle, - /obj/item/cell/lasgun/volkite/small, - ) holsterable_allowed = list( /obj/item/weapon/gun, ) //Any pistol you add to a holster should update the sprite. Ammo/Magazines dont update any sprites @@ -597,16 +497,18 @@ /obj/item/storage/holster/belt/pistol/m4a3 name = "\improper M4A3 holster rig" desc = "The M4A3 is a common holster belt. It consists of a modular belt with various clips. This version has a holster assembly that allows one to carry a handgun. It also contains side pouches that can store 9mm or .45 magazines." - can_hold = list( + +/obj/item/storage/holster/belt/pistol/m4a3/full/Initialize(mapload) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/gun/pistol, /obj/item/ammo_magazine/pistol, /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, /obj/item/cell/lasgun/lasrifle, /obj/item/cell/lasgun/plasma, - ) + )) -/obj/item/storage/holster/belt/pistol/m4a3/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/rt3(src) new /obj/item/ammo_magazine/pistol/ap(src) new /obj/item/ammo_magazine/pistol/hp(src) @@ -614,10 +516,9 @@ new /obj/item/ammo_magazine/pistol/extended(src) new /obj/item/ammo_magazine/pistol/extended(src) new /obj/item/ammo_magazine/pistol/extended(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) -/obj/item/storage/holster/belt/pistol/m4a3/officer/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/officer/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/rt3(src) new /obj/item/ammo_magazine/pistol/hp(src) new /obj/item/ammo_magazine/pistol/hp(src) @@ -625,10 +526,9 @@ new /obj/item/ammo_magazine/pistol/ap(src) new /obj/item/ammo_magazine/pistol/ap(src) new /obj/item/ammo_magazine/pistol/ap(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) -/obj/item/storage/holster/belt/pistol/m4a3/fieldcommander/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/fieldcommander/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/m1911/custom(src) new /obj/item/ammo_magazine/pistol/m1911(src) new /obj/item/ammo_magazine/pistol/m1911(src) @@ -636,10 +536,9 @@ new /obj/item/ammo_magazine/pistol/m1911(src) new /obj/item/ammo_magazine/pistol/m1911(src) new /obj/item/ammo_magazine/pistol/m1911(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) -/obj/item/storage/holster/belt/pistol/m4a3/vp70/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/vp70/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) @@ -647,10 +546,9 @@ new /obj/item/ammo_magazine/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) -/obj/item/storage/holster/belt/pistol/m4a3/vp70_pmc/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/vp70_pmc/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/vp70/tactical(src) new /obj/item/ammo_magazine/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) @@ -658,10 +556,9 @@ new /obj/item/ammo_magazine/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) new /obj/item/ammo_magazine/pistol/vp70(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) -/obj/item/storage/holster/belt/pistol/m4a3/vp78/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/vp78/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/vp78(src) new /obj/item/ammo_magazine/pistol/vp78(src) new /obj/item/ammo_magazine/pistol/vp78(src) @@ -669,13 +566,16 @@ new /obj/item/ammo_magazine/pistol/vp78(src) new /obj/item/ammo_magazine/pistol/vp78(src) new /obj/item/ammo_magazine/pistol/vp78(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/pistol/m4a3/som name = "\improper S19 holster rig" desc = "A belt with origins dating back to old colony security holster rigs." icon_state = "som_belt_pistol" - can_hold = list( + +/obj/item/storage/holster/belt/pistol/m4a3/som/serpenta/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/gun/pistol, /obj/item/ammo_magazine/pistol, /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, @@ -683,10 +583,9 @@ /obj/item/cell/lasgun/lasrifle, /obj/item/cell/lasgun/volkite/small, /obj/item/cell/lasgun/plasma, - ) + )) -/obj/item/storage/holster/belt/pistol/m4a3/som/serpenta/Initialize(mapload, ...) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/som/serpenta/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta(src) new /obj/item/cell/lasgun/volkite/small(src) new /obj/item/cell/lasgun/volkite/small(src) @@ -694,15 +593,14 @@ new /obj/item/cell/lasgun/volkite/small(src) new /obj/item/cell/lasgun/volkite/small(src) new /obj/item/cell/lasgun/volkite/small(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/pistol/m4a3/som/fancy name = "\improper S19-B holster rig" desc = "A quality pistol belt of a style typically seen worn by SOM officers. It looks old, but well looked after." icon_state = "som_belt_pistol_fancy" -/obj/item/storage/holster/belt/pistol/m4a3/som/fancy/fieldcommander/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/pistol/m4a3/som/fancy/fieldcommander/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta/custom(src) new /obj/item/cell/lasgun/volkite/small(src) new /obj/item/cell/lasgun/volkite/small(src) @@ -710,15 +608,18 @@ new /obj/item/cell/lasgun/volkite/small(src) new /obj/item/cell/lasgun/volkite/small(src) new /obj/item/cell/lasgun/volkite/small(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/pistol/stand name = "\improper M276 pattern M4A3 holster rig" desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This version has a holster assembly that allows one to carry the M4A3 comfortably secure. It also contains side pouches that can store 9mm or .45 magazines." - can_hold = list( + +/obj/item/storage/holster/belt/pistol/stand/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/gun/pistol, /obj/item/ammo_magazine/pistol, - ) + )) /obj/item/storage/holster/belt/pistol/standard_pistol name = "\improper T457 pattern pistol holster rig" @@ -729,27 +630,24 @@ name = "\improper T457 pattern revolver holster rig" desc = "The T457 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips." icon_state = "tp44_holster" - bypass_w_limit = list( + +/obj/item/storage/holster/belt/revolver/standard_revolver/Initialize(mapload, ...) + . = ..() + storage_datum.storage_type_limits = list( /obj/item/weapon/gun/revolver, ) - can_hold = list( + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/gun/revolver, /obj/item/ammo_magazine/revolver, - ) + )) /obj/item/storage/holster/belt/m44 name = "\improper M276 pattern M44 holster rig" desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This version is for the M44 magnum revolver, along with three pouches for speedloaders." icon_state = "m44_holster" - max_storage_space = 16 - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( - /obj/item/weapon/gun/revolver, - /obj/item/ammo_magazine/revolver, - ) + storage_type = /datum/storage/holster/belt/m44 -/obj/item/storage/holster/belt/m44/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/m44/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/revolver/single_action/m44(src) new /obj/item/ammo_magazine/revolver/heavy(src) new /obj/item/ammo_magazine/revolver/marksman(src) @@ -757,23 +655,15 @@ new /obj/item/ammo_magazine/revolver(src) new /obj/item/ammo_magazine/revolver(src) new /obj/item/ammo_magazine/revolver(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/mateba name = "\improper M276 pattern Mateba holster rig" desc = "The M276 is the standard load-bearing equipment of the TGMC. It consists of a modular belt with various clips. This version is for the powerful Mateba magnum revolver, along with three pouches for speedloaders." icon_state = "mateba_holster" - max_storage_space = 16 - bypass_w_limit = list( - /obj/item/weapon/gun/revolver/mateba, - ) - can_hold = list( - /obj/item/weapon/gun/revolver/mateba, - /obj/item/ammo_magazine/revolver/mateba, - ) + storage_type = /datum/storage/holster/belt/mateba -/obj/item/storage/holster/belt/mateba/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/mateba/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) @@ -781,13 +671,12 @@ new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/mateba/officer icon_state = "c_mateba_holster" -/obj/item/storage/holster/belt/mateba/officer/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/mateba/officer/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/revolver/mateba/custom(src) new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) @@ -795,11 +684,13 @@ new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/mateba/notmarine/Initialize(mapload) . = ..() icon_state = "a_mateba_holster" + +/obj/item/storage/holster/belt/mateba/notmarine/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/revolver/mateba/(src) new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) @@ -807,20 +698,15 @@ new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) new /obj/item/ammo_magazine/revolver/mateba(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/korovin name = "\improper Type 41 pistol holster rig" desc = "A modification of the standard UPP pouch rig to carry a single Korovin PK-9 pistol. It also contains side pouches that can store .22 magazines, either hollowpoints or tranquilizers." icon_state = "korovin_holster" - can_hold = list( - /obj/item/weapon/gun/pistol/c99, - /obj/item/ammo_magazine/pistol/c99, - /obj/item/ammo_magazine/pistol/c99t, - ) + storage_type = /datum/storage/holster/belt/korovin -/obj/item/storage/holster/belt/korovin/standard/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/korovin/standard/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/c99(src) new /obj/item/ammo_magazine/pistol/c99(src) new /obj/item/ammo_magazine/pistol/c99(src) @@ -828,10 +714,9 @@ new /obj/item/ammo_magazine/pistol/c99(src) new /obj/item/ammo_magazine/pistol/c99(src) new /obj/item/ammo_magazine/pistol/c99(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) -/obj/item/storage/holster/belt/korovin/tranq/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/korovin/tranq/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/c99/tranq(src) new /obj/item/ammo_magazine/pistol/c99t(src) new /obj/item/ammo_magazine/pistol/c99t(src) @@ -839,39 +724,33 @@ new /obj/item/ammo_magazine/pistol/c99(src) new /obj/item/ammo_magazine/pistol/c99(src) new /obj/item/ammo_magazine/pistol/c99(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/ts34 name = "\improper M276 pattern SH-34 shotgun holster rig" desc = "A purpose built belt-holster assembly that holds a SH-34 shotgun and one shell box or 2 handfuls." icon_state = "ts34_holster" - max_w_class = WEIGHT_CLASS_BULKY //So it can hold the shotgun. w_class = WEIGHT_CLASS_BULKY - storage_slots = 3 - max_storage_space = 8 - can_hold = list( - /obj/item/weapon/gun/shotgun/double/marine, - /obj/item/ammo_magazine/shotgun, - /obj/item/ammo_magazine/handful, - ) + storage_type = /datum/storage/holster/belt/ts34 holsterable_allowed = list(/obj/item/weapon/gun/shotgun/double/marine) -/obj/item/storage/holster/belt/ts34/full/Initialize(mapload) - . = ..() +/obj/item/storage/holster/belt/ts34/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/shotgun/double/marine(src) new /obj/item/ammo_magazine/shotgun/buckshot(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) /obj/item/storage/holster/belt/pistol/smart_pistol name = "\improper SP-13 holster rig" desc = "A holster belt, which holds SP-13 smartpistol and magazines for it." - can_hold = list( - /obj/item/weapon/gun/pistol/smart_pistol, - /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol, - ) /obj/item/storage/holster/belt/pistol/smart_pistol/full/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list( + /obj/item/weapon/gun/pistol/smart_pistol, + /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol, + )) + +/obj/item/storage/holster/belt/pistol/smart_pistol/full/PopulateContents() var/obj/item/weapon/gun/new_gun = new /obj/item/weapon/gun/pistol/smart_pistol(src) new /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol(src) new /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol(src) @@ -879,4 +758,4 @@ new /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol(src) new /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol(src) new /obj/item/ammo_magazine/pistol/standard_pistol/smart_pistol(src) - INVOKE_ASYNC(src, PROC_REF(handle_item_insertion), new_gun) + INVOKE_ASYNC(storage_datum, TYPE_PROC_REF(/datum/storage, handle_item_insertion), new_gun) diff --git a/code/game/objects/items/storage/internal.dm b/code/game/objects/items/storage/internal.dm deleted file mode 100644 index 5c38e9afe7ba1..0000000000000 --- a/code/game/objects/items/storage/internal.dm +++ /dev/null @@ -1,142 +0,0 @@ -//A storage item intended to be used by other items to provide storage functionality. -//Types that use this should consider overriding emp_act() and hear_talk(), unless they shield their contents somehow. -/obj/item/storage/internal - allow_drawing_method = FALSE /// Unable to set draw_mode ourselves - var/obj/master_item - -/obj/item/storage/internal/Initialize(mapload) - . = ..() - master_item = loc - if(!istype(master_item)) - master_item = null - return INITIALIZE_HINT_QDEL - name = master_item.name - forceMove(master_item) - verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up. - -/obj/item/storage/internal/Destroy() - for(var/i in contents) - var/obj/item/content_item = i - qdel(content_item) - master_item = null - return ..() - -/obj/item/storage/internal/attack_hand(mob/living/user) - return TRUE - -/obj/item/storage/internal/mob_can_equip(mob/user, slot, warning = TRUE, override_nodrop = FALSE, bitslot = FALSE) - return 0 //make sure this is never picked up - -//Helper procs to cleanly implement internal storages - storage items that provide inventory slots for other items. -//These procs are completely optional, it is up to the master item to decide when it's storage get's opened by calling open() -//However they are helpful for allowing the master item to pretend it is a storage item itself. -//If you are using these you will probably want to override attackby() as well. -//See /obj/item/clothing/suit/storage for an example. - -//Items that use internal storage have the option of calling this to emulate default storage MouseDrop behaviour. -//Returns 1 if the master item's parent's MouseDrop() should be called, 0 otherwise. It's strange, but no other way of -//Doing it without the ability to call another proc's parent, really. -/obj/item/storage/internal/proc/handle_mousedrop(mob/user, obj/over_object) - if(!ishuman(user)) - return FALSE - - if(user.lying_angle || user.incapacitated()) //Can't use your inventory when lying - return FALSE - - if(over_object == user && Adjacent(user)) //This must come before the screen objects only block - open(user) - return FALSE - - if(!isitem(master_item)) - return FALSE - - var/obj/item/owner = master_item - - if(HAS_TRAIT(owner, TRAIT_NODROP)) - return FALSE - - if(!istype(over_object, /atom/movable/screen)) - return TRUE - - //Makes sure owner is equipped before putting it in hand, so that we can't drag it into our hand from miles away. - //There's got to be a better way of doing this... - if(owner.loc != user || (owner.loc?.loc == user)) - return FALSE - - if(over_object.name == "r_hand" || over_object.name == "l_hand") - if(owner.unequip_delay_self) - INVOKE_ASYNC(src, PROC_REF(unequip_item), user, over_object.name) - else if(over_object.name == "r_hand") - user.dropItemToGround(owner) - user.put_in_r_hand(owner) - else if(over_object.name == "l_hand") - user.dropItemToGround(owner) - user.put_in_l_hand(owner) - return FALSE - -///unequips items that require a do_after because they have an unequip time -/obj/item/storage/internal/proc/unequip_item(mob/living/carbon/user, hand_to_put_in) - var/obj/item/owner = master_item - if(!do_after(user, owner.unequip_delay_self, NONE, owner, BUSY_ICON_FRIENDLY)) - to_chat(user, "You stop taking off \the [owner]") - return - if(hand_to_put_in == "r_hand") - user.dropItemToGround(owner) - user.put_in_r_hand(owner) - else - user.dropItemToGround(owner) - user.put_in_l_hand(owner) - -//Items that use internal storage have the option of calling this to emulate default storage attack_hand behaviour. -//Returns 1 if the master item's parent's attack_hand() should be called, 0 otherwise. -//It's strange, but no other way of doing it without the ability to call another proc's parent, really. -/obj/item/storage/internal/proc/handle_attack_hand(mob/user) - - if(user.lying_angle) - return FALSE - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.l_store == master_item && !H.get_active_held_item()) //Prevents opening if it's in a pocket. - H.put_in_hands(master_item) - H.l_store = null - return FALSE - if(H.r_store == master_item && !H.get_active_held_item()) - H.put_in_hands(master_item) - H.r_store = null - return FALSE - - if(master_item.loc == user) - if(draw_mode && ishuman(user) && length(contents)) - var/obj/item/I = contents[length(contents)] - I.attack_hand(user) - else - open(user) - return FALSE - - for(var/mob/M in range(1, master_item.loc)) - if(M.s_active == src) - close(M) - return TRUE - -/obj/item/storage/internal/Adjacent(atom/neighbor, atom/target, atom/movable/mover) - return master_item.Adjacent(neighbor) - - -/obj/item/storage/internal/handle_item_insertion(obj/item/W, prevent_warning = FALSE) - . = ..() - master_item?.on_pocket_insertion() - - -/obj/item/storage/internal/remove_from_storage(obj/item/W, atom/new_location, mob/user) - . = ..() - master_item?.on_pocket_removal() - - -///things to do when an item is inserted in the obj's internal pocket -/obj/proc/on_pocket_insertion() - return - -///things to do when an item is removed in the obj's internal pocket -/obj/proc/on_pocket_removal() - return diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 3394e6b66f9fb..44c1863b727ad 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -4,17 +4,14 @@ icon_state = "lockbox+l" item_state = "syringe_kit" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_storage_space = 14 - storage_slots = 4 req_access = list(ACCESS_MARINE_CAPTAIN) + storage_type = /datum/storage/lockbox var/locked = 1 var/broken = 0 var/icon_locked = "lockbox+l" var/icon_closed = "lockbox" var/icon_broken = "lockbox+b" - /obj/item/storage/lockbox/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/card/id)) if(broken) @@ -38,11 +35,3 @@ return return ..() - - -/obj/item/storage/lockbox/show_to(mob/user) - if(locked) - to_chat(user, span_warning("Its locked!")) - return - - return ..() diff --git a/code/game/objects/items/storage/marine_boxes.dm b/code/game/objects/items/storage/marine_boxes.dm index 7c73e823ffaa5..ce317728f1388 100644 --- a/code/game/objects/items/storage/marine_boxes.dm +++ b/code/game/objects/items/storage/marine_boxes.dm @@ -3,23 +3,121 @@ desc = "It's just an ordinary wooden crate." icon = 'icons/obj/items/storage/storage.dmi' icon_state = "case" - foldable = /obj/item/stack/sheet/wood + +/obj/item/storage/box/crate/Initialize(mapload, ...) + . = ..() + storage_datum.foldable = /obj/item/stack/sheet/wood /obj/item/storage/box/crate/update_icon_state() . = ..() icon_state = length(contents) ? initial(icon_state) : "empty_case" +/obj/item/storage/box/crate/heavy_armor + name = "\improper B-Series defensive armor crate" + desc = "A large case containing an experiemental suit of B18 armor for the discerning specialist." + icon_state = "armor_case" + w_class = WEIGHT_CLASS_HUGE + +/obj/item/storage/box/crate/heavy_armor/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 3 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/heavy_armor/PopulateContents() + new /obj/item/clothing/gloves/marine/specialist(src) + new /obj/item/clothing/suit/storage/marine/specialist(src) + new /obj/item/clothing/head/helmet/marine/specialist(src) + +/obj/item/storage/box/crate/grenade_system + name = "\improper M92 grenade launcher case" + desc = "A large case containing a heavy-duty multi-shot grenade launcher, the Armat Systems M92. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." + icon_state = "grenade_case" + w_class = WEIGHT_CLASS_HUGE + slowdown = 1 + +/obj/item/storage/box/crate/grenade_system/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 2 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/grenade_system/PopulateContents() + new /obj/item/weapon/gun/grenade_launcher/multinade_launcher(src) + new /obj/item/storage/belt/grenade/b17(src) + +/obj/item/storage/box/crate/rocket_system + name = "\improper M5 RPG crate" + desc = "A large case containing a heavy-caliber antitank missile launcher and missiles. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." + icon_state = "rocket_case" + w_class = WEIGHT_CLASS_HUGE + slowdown = 1 + +/obj/item/storage/box/crate/rocket_system/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 6 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/rocket_system/PopulateContents() + new /obj/item/weapon/gun/launcher/rocket/sadar(src) + new /obj/item/ammo_magazine/rocket/sadar(src) + new /obj/item/ammo_magazine/rocket/sadar(src) + new /obj/item/ammo_magazine/rocket/sadar/ap(src) + new /obj/item/ammo_magazine/rocket/sadar/ap(src) + new /obj/item/ammo_magazine/rocket/sadar/wp(src) + +/obj/item/storage/box/crate/heavy_grenadier + name = "\improper Heavy Grenadier case" + desc = "A large case containing B17 Heavy Armor and a heavy-duty multi-shot grenade launcher, the Armat Systems M92. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." + icon_state = "grenade_case" + w_class = WEIGHT_CLASS_HUGE + slowdown = 1 + +/obj/item/storage/box/crate/heavy_grenadier/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 6 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/heavy_grenadier/PopulateContents() + new /obj/item/weapon/gun/grenade_launcher/multinade_launcher(src) + new /obj/item/storage/belt/grenade/b17(src) + new /obj/item/clothing/suit/storage/marine/B17(src) + new /obj/item/clothing/head/helmet/marine/grenadier(src) + new /obj/item/storage/box/visual/grenade/frag(src) + new /obj/item/storage/box/visual/grenade/frag(src) + new /obj/item/storage/box/visual/grenade/incendiary(src) + +/obj/item/storage/box/crate/heavy_gunner + name = "\improper Heavy Minigunner case" + desc = "A large case containing B18 armor, munitions, and a goddamn minigun. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." + icon_state = "rocket_case" + w_class = WEIGHT_CLASS_HUGE + slowdown = 1 + +/obj/item/storage/box/crate/heavy_gunner/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 16 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/heavy_gunner/PopulateContents() + new /obj/item/clothing/gloves/marine/specialist(src) + new /obj/item/clothing/suit/storage/marine/specialist(src) + new /obj/item/clothing/head/helmet/marine/specialist(src) + new /obj/item/weapon/gun/minigun(src) + new /obj/item/belt_harness/marine(src) + new /obj/item/ammo_magazine/minigun_powerpack(src) + /obj/item/storage/box/crate/m42c_system name = "\improper antimaterial scoped rifle system (recon set)" desc = "A large case containing your very own long-range sniper rifle. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." icon_state = "sniper_case" w_class = WEIGHT_CLASS_HUGE - storage_slots = 12 slowdown = 1 - can_hold = list() //Nada. Once you take the stuff out it doesn't fit back in. /obj/item/storage/box/crate/m42c_system/Initialize(mapload, ...) . = ..() + storage_datum.storage_slots = 12 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/m42c_system/PopulateContents() new /obj/item/clothing/suit/modular/xenonauten/light(src) new /obj/item/clothing/head/modular/m10x(src) new /obj/item/clothing/glasses/night/m42_night_goggles(src) @@ -39,12 +137,14 @@ desc = "A large case containing your very own long-range sniper rifle. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." icon_state = "sniper_case" w_class = WEIGHT_CLASS_HUGE - storage_slots = 9 slowdown = 1 - can_hold = list() //Nada. Once you take the stuff out it doesn't fit back in. /obj/item/storage/box/crate/m42c_system_Jungle/Initialize(mapload, ...) . = ..() + storage_datum.storage_slots = 9 + storage_datum.max_storage_space = 0 + +/obj/item/storage/box/crate/m42c_system_Jungle/PopulateContents() new /obj/item/clothing/suit/modular/xenonauten/light(src) new /obj/item/clothing/head/modular/m10x(src) new /obj/item/clothing/glasses/m42_goggles(src) diff --git a/code/game/objects/items/storage/misc.dm b/code/game/objects/items/storage/misc.dm index be83920b3bc0b..666b7f243b6a8 100644 --- a/code/game/objects/items/storage/misc.dm +++ b/code/game/objects/items/storage/misc.dm @@ -2,10 +2,9 @@ name = "pack of dice" desc = "It's a small container with dice inside." -/obj/item/storage/pill_bottle/dice/Initialize(mapload) - . = ..() - new /obj/item/toy/dice( src ) - new /obj/item/toy/dice/d20( src ) +/obj/item/storage/pill_bottle/dice/PopulateContents() + new /obj/item/toy/dice(src) + new /obj/item/toy/dice/d20(src) /* * Donut Box @@ -16,14 +15,17 @@ icon_state = "donutbox" name = "\improper Yum! donuts" desc = "A box of mouth watering \"Yum!\" brand donuts." - storage_slots = 6 + ///How many items spawn in src var/startswith = 6 var/open = 0 - can_hold = list(/obj/item/reagent_containers/food/snacks/donut) - foldable = /obj/item/stack/sheet/cardboard /obj/item/storage/donut_box/Initialize(mapload) . = ..() + storage_datum.set_holdable(can_hold_list = list(/obj/item/reagent_containers/food/snacks/donut)) + storage_datum.foldable = /obj/item/stack/sheet/cardboard + storage_datum.storage_slots = 6 + +/obj/item/storage/donut_box/PopulateContents() for(var/i in 1 to startswith) new /obj/item/reagent_containers/food/snacks/donut/normal(src) update_icon() @@ -51,7 +53,7 @@ for(var/obj/item/reagent_containers/food/snacks/donut/D in contents) i++ var/image/img = image('icons/obj/items/food/donuts.dmi', "[D.overlay_state]-[i]") - . += img + . += img // wtf /obj/item/storage/donut_box/empty icon_state = "donutbox_o" diff --git a/code/game/objects/items/storage/pill_packets.dm b/code/game/objects/items/storage/pill_packets.dm index 96246b8beac0b..e2d8ab4d10082 100644 --- a/code/game/objects/items/storage/pill_packets.dm +++ b/code/game/objects/items/storage/pill_packets.dm @@ -4,29 +4,10 @@ name = "pill packet" desc = "Contains pills. Once you take them out they don't go back in." icon_state = "packet_canister" - cant_hold = list(/obj/item/reagent_containers/pill) //Nada. Once you take the pills out. They don't come back in. - storage_slots = 8 - max_w_class = 0 - max_storage_space = 8 greyscale_config = null //So that we get packets and not pill bottles. + storage_type = /datum/storage/pill_bottle/packet ///Color of the pips on top of the pill packet var/pip_color = "#0066ff" //default color because I like this color - ///the item left behind when this is used up - var/trash_item = /obj/item/trash/pillpacket - refill_types = null - refill_sound = null - storage_flags = BYPASS_VENDOR_CHECK - -/obj/item/storage/pill_bottle/packet/remove_from_storage(obj/item/item, atom/new_location, mob/user) - . = ..() - if(!.) - return - if(!length(contents) && !QDELETED(src)) - var/turf/T = get_turf(src) - new trash_item(T) - qdel(src) - return - update_icon() /obj/item/storage/pill_bottle/packet/update_overlays() . = ..() diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index 355bebfee4ab6..d9f682a1c61cf 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -3,20 +3,17 @@ icon = 'icons/Marine/marine-pouches.dmi' icon_state = "small_drop" w_class = WEIGHT_CLASS_BULKY //does not fit in backpack - max_w_class = WEIGHT_CLASS_SMALL equip_slot_flags = ITEM_SLOT_POCKET - storage_slots = 1 - draw_mode = 0 - allow_drawing_method = TRUE - var/fill_type + storage_type = /datum/storage/pouch + ///What item we fill our pouch with, requires fill_number to run + var/fill_type = null + ///How much of our fill_type do we want to fill our pouch with, requires fill_type to run var/fill_number = 0 -/obj/item/storage/pouch/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/PopulateContents() if(fill_number && fill_type) for(var/i in 1 to fill_number) new fill_type(src) - return INITIALIZE_HINT_LATELOAD /obj/item/storage/pouch/LateInitialize() . = ..() @@ -26,7 +23,6 @@ . = ..() . += "Can be worn by attaching it to a pocket." - /obj/item/storage/pouch/equipped(mob/user, slot) if(slot == SLOT_L_STORE || slot == SLOT_R_STORE) mouse_opacity = 2 //so it's easier to click when properly equipped. @@ -44,26 +40,34 @@ name = "light general pouch" desc = "A general purpose pouch used to carry small items." icon_state = "small_drop" - draw_mode = 1 - bypass_w_limit = list(/obj/item/ammo_magazine/packet) + +/obj/item/storage/pouch/general/Initialize(mapload, ...) + . = ..() + storage_datum.draw_mode = TRUE + storage_datum.storage_type_limits = list(/obj/item/ammo_magazine/packet) /obj/item/storage/pouch/general/medium name = "medium general pouch" - storage_slots = 2 icon_state = "medium_drop" - sprite_slots = 2 - draw_mode = 0 + +/obj/item/storage/pouch/general/medium/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 2 + storage_datum.sprite_slots = 2 + storage_datum.draw_mode = FALSE /obj/item/storage/pouch/general/large name = "general pouch" - storage_slots = null - max_storage_space = 6 icon_state = "large_drop" - sprite_slots = 3 - draw_mode = 0 -/obj/item/storage/pouch/general/large/command/Initialize(mapload) +/obj/item/storage/pouch/general/large/Initialize(mapload, ...) . = ..() + storage_datum.storage_slots = null + storage_datum.max_storage_space = 6 + storage_datum.sprite_slots = 3 + storage_datum.draw_mode = FALSE + +/obj/item/storage/pouch/general/large/command/PopulateContents() new /obj/item/binoculars/tactical(src) new /obj/item/megaphone(src) new /obj/item/pinpointer(src) @@ -73,25 +77,34 @@ name = "mining general pouch" desc = "A general purpose pouch used to carry small items used during mining." icon_state = "general_som" - sprite_slots = null - draw_mode = 1 + +/obj/item/storage/pouch/general/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null + storage_datum.draw_mode = TRUE /obj/item/storage/pouch/general/large/som desc = "A general purpose pouch used to carry small items used during mining." icon_state = "large_drop_som" - sprite_slots = null + +/obj/item/storage/pouch/general/large/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/bayonet name = "bayonet sheath" desc = "A pouch for your knives." - can_hold = list( + icon_state = "bayonet" + +/obj/item/storage/pouch/bayonet/Initialize(mapload, ...) + . = ..() + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/combat_knife, /obj/item/stack/throwing_knife, /obj/item/attachable/bayonet, - ) - icon_state = "bayonet" - storage_slots = 3 - draw_mode = 1 + )) + storage_datum.storage_slots = 3 + storage_datum.draw_mode = TRUE /obj/item/storage/pouch/bayonet/full fill_type = /obj/item/weapon/combat_knife @@ -105,20 +118,22 @@ name = "survival pouch" desc = "It can contain flashlights, a pill, a crowbar, metal sheets, and some bandages." icon_state = "survival" - sprite_slots = 1 - storage_slots = 6 - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( + +/obj/item/storage/pouch/survival/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 1 + storage_datum.storage_slots = 6 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.set_holdable(can_hold_list = list( /obj/item/flashlight, /obj/item/reagent_containers/pill, /obj/item/stack/medical/heal_pack/gauze, /obj/item/stack/sheet/metal, /obj/item/stack/sheet/plasteel, /obj/item/tool/weldingtool, - ) + )) -/obj/item/storage/pouch/survival/full/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/survival/full/PopulateContents() new /obj/item/flashlight(src) new /obj/item/reagent_containers/pill/tramadol(src) new /obj/item/stack/medical/heal_pack/gauze(src, 3) @@ -130,16 +145,18 @@ name = "first-aid pouch" desc = "Standard marine first-aid pouch. It can contain most common medical supplies." icon_state = "firstaid" - sprite_slots = 3 - storage_slots = 6 - can_hold = list( + +/obj/item/storage/pouch/firstaid/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 3 + storage_datum.storage_slots = 6 + storage_datum.set_holdable(can_hold_list = list( /obj/item/reagent_containers/hypospray, /obj/item/stack/medical, /obj/item/storage/pill_bottle, - ) + )) -/obj/item/storage/pouch/firstaid/combat_patrol/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/firstaid/combat_patrol/PopulateContents() new /obj/item/reagent_containers/hypospray/autoinjector/bicaridine(src) new /obj/item/reagent_containers/hypospray/autoinjector/kelotane(src) new /obj/item/storage/pill_bottle/packet/tramadol(src) @@ -147,8 +164,7 @@ new /obj/item/stack/medical/splint(src) new /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline(src) -/obj/item/storage/pouch/firstaid/basic/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/firstaid/basic/PopulateContents() new /obj/item/storage/pill_bottle/packet/bicaridine(src) new /obj/item/storage/pill_bottle/packet/kelotane(src) new /obj/item/storage/pill_bottle/packet/tramadol(src) @@ -156,8 +172,7 @@ new /obj/item/stack/medical/splint(src) new /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline(src) -/obj/item/storage/pouch/firstaid/combat_patrol_leader/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/firstaid/combat_patrol_leader/PopulateContents() new /obj/item/storage/pill_bottle/packet/bicaridine(src) new /obj/item/storage/pill_bottle/packet/kelotane(src) new /obj/item/storage/pill_bottle/packet/tramadol(src) @@ -169,10 +184,12 @@ name = "mining first aid pouch" desc = "A basic first aid pouch originally used by miners due to dangerous working conditions on the mining colonies. This one is marked as belonging to the SOM." icon_state = "firstaid_som" - sprite_slots = null -/obj/item/storage/pouch/firstaid/som/full/Initialize(mapload) +/obj/item/storage/pouch/firstaid/som/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/firstaid/som/full/PopulateContents() new /obj/item/storage/pill_bottle/packet/bicaridine(src) new /obj/item/storage/pill_bottle/packet/kelotane(src) new /obj/item/storage/pill_bottle/packet/tramadol(src) @@ -180,8 +197,7 @@ new /obj/item/stack/medical/splint(src) new /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline(src) -/obj/item/storage/pouch/firstaid/som/combat_patrol/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/firstaid/som/combat_patrol/PopulateContents() new /obj/item/reagent_containers/hypospray/autoinjector/bicaridine(src) new /obj/item/reagent_containers/hypospray/autoinjector/kelotane(src) new /obj/item/storage/pill_bottle/packet/tramadol(src) @@ -189,8 +205,7 @@ new /obj/item/stack/medical/splint(src) new /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline(src) -/obj/item/storage/pouch/firstaid/som/combat_patrol_leader/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/firstaid/som/combat_patrol_leader/PopulateContents() new /obj/item/storage/pill_bottle/packet/bicaridine(src) new /obj/item/storage/pill_bottle/packet/kelotane(src) new /obj/item/storage/pill_bottle/packet/tramadol(src) @@ -202,33 +217,40 @@ name = "sidearm pouch" desc = "It can contain a pistol or revolver. Useful for emergencies." icon_state = "pistol" - sprite_slots = 1 - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( + +/obj/item/storage/pouch/pistol/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 1 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.set_holdable(can_hold_list = list( /obj/item/weapon/gun/pistol, /obj/item/weapon/gun/revolver, /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, /obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta, - ) - draw_mode = 1 + )) + storage_datum.draw_mode = TRUE -/obj/item/storage/pouch/pistol/vp70/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/pistol/vp70/PopulateContents() new /obj/item/weapon/gun/pistol/vp70(src) -/obj/item/storage/pouch/pistol/rt3/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/pistol/rt3/PopulateContents() new /obj/item/weapon/gun/pistol/rt3(src) /obj/item/storage/pouch/pistol/som desc = "It can contain a pistol or revolver. Useful for emergencies, and made out of stylish leather in the old SOM tradition." icon_state = "pistol_som" - sprite_slots = null + +/obj/item/storage/pouch/pistol/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/pistol/icc desc = "It can contain a pistol or revolver. Useful for emergencies, and made is out of a syntheic tan fabric." icon_state = "pistol_icc" - sprite_slots = null + +/obj/item/storage/pouch/pistol/icc/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null //// MAGAZINE POUCHES ///// @@ -236,11 +258,14 @@ name = "magazine pouch" desc = "It can contain ammo magazines." icon_state = "medium_ammo_mag" - sprite_slots = 2 - max_w_class = WEIGHT_CLASS_NORMAL - storage_slots = 2 - draw_mode = 0 - can_hold = list( + +/obj/item/storage/pouch/magazine/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 2 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.storage_slots = 2 + storage_datum.draw_mode = FALSE + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/rifle, /obj/item/ammo_magazine/smg, /obj/item/ammo_magazine/pistol, @@ -249,7 +274,7 @@ /obj/item/ammo_magazine/handful, /obj/item/ammo_magazine/railgun, /obj/item/cell/lasgun, - ) + )) /obj/item/storage/pouch/magazine/smgfull fill_type = /obj/item/ammo_magazine/smg/standard_machinepistol @@ -259,8 +284,11 @@ name = "magazine pouch" desc = "This pouch can contain three ammo magazines." icon_state = "large_ammo_mag" - sprite_slots = 3 - storage_slots = 3 + +/obj/item/storage/pouch/magazine/large/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 3 + storage_datum.storage_slots = 3 /obj/item/storage/pouch/magazine/large/tx8full fill_type = /obj/item/ammo_magazine/rifle/tx8 @@ -273,34 +301,45 @@ /obj/item/storage/pouch/magazine/large/som desc = "This pouch can contain three ammo magazines. Made with traditional SOM leather." icon_state = "mag_som" - sprite_slots = null + +/obj/item/storage/pouch/magazine/large/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/magazine/large/icc desc = "This pouch can contain three ammo magazines, appears to be made with a synthetic tan fiber." icon_state = "mag_icc" - sprite_slots = null + +/obj/item/storage/pouch/magazine/large/icc/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/magazine/pistol name = "pistol magazine pouch" desc = "It can contain pistol and revolver ammo magazines." - max_w_class = WEIGHT_CLASS_SMALL icon_state = "pistol_mag" - sprite_slots = 3 - storage_slots = 3 - can_hold = list( +/obj/item/storage/pouch/magazine/pistol/Initialize(mapload, ...) + . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_SMALL + storage_datum.sprite_slots = 3 + storage_datum.storage_slots = 3 + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/pistol, /obj/item/ammo_magazine/revolver, /obj/item/ammo_magazine/smg/standard_machinepistol, /obj/item/ammo_magazine/rifle/pepperball/pepperball_mini, - ) + )) /obj/item/storage/pouch/magazine/pistol/large name = "pistol magazine pouch" desc = "This pouch can contain six pistol and revolver ammo magazines." - storage_slots = 6 icon_state = "large_pistol_mag" - sprite_slots = 5 + +/obj/item/storage/pouch/magazine/pistol/large/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 6 + storage_datum.sprite_slots = 5 /obj/item/storage/pouch/magazine/pistol/large/full fill_type = /obj/item/ammo_magazine/pistol @@ -358,21 +397,27 @@ name = "drum magazine pouch" desc = "It can contain four drum magazines." icon_state = "large_ammo_drum" - storage_slots = 4 - sprite_slots = null - can_hold = list( + +/obj/item/storage/pouch/magazine/drum/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 4 + storage_datum.sprite_slots = null + storage_datum.set_holdable(can_hold_list = list( /obj/item/ammo_magazine/, - ) + )) /obj/item/storage/pouch/explosive name = "explosive pouch" desc = "It can contain grenades, plastiques, mine boxes, and other explosives." icon_state = "explosive" - sprite_slots = 2 - storage_slots = 4 - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( + +/obj/item/storage/pouch/explosive/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 2 + storage_datum.storage_slots = 4 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.set_holdable(can_hold_list = list( /obj/item/explosive/plastique, /obj/item/explosive/mine, /obj/item/explosive/grenade, @@ -380,21 +425,19 @@ /obj/item/ammo_magazine/rocket, /obj/item/detpack, /obj/item/assembly/signaler, - ) + )) /obj/item/storage/pouch/explosive/full fill_type = /obj/item/explosive/grenade fill_number = 4 -/obj/item/storage/pouch/explosive/detpack/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/explosive/detpack/PopulateContents() new /obj/item/detpack(src) new /obj/item/detpack(src) new /obj/item/detpack(src) new /obj/item/assembly/signaler(src) -/obj/item/storage/pouch/explosive/razorburn/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/explosive/razorburn/PopulateContents() new /obj/item/explosive/grenade/chem_grenade/razorburn_small(src) new /obj/item/explosive/grenade/chem_grenade/razorburn_small(src) new /obj/item/explosive/grenade/chem_grenade/razorburn_small(src) @@ -415,29 +458,37 @@ name = "\improper S26 explosive pouch" desc = "A leather pouch for storing grenades, rockets, mine boxes, and other explosives." icon_state = "explosive_som" - sprite_slots = null + +/obj/item/storage/pouch/explosive/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/explosive/icc desc = "It can contain grenades, plastiques, mine boxes, and other explosives. Clearly made from with a synthetic tan fiber." icon_state = "large_explosive_icc" - sprite_slots = null + +/obj/item/storage/pouch/explosive/icc/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/grenade name = "grenade pouch" desc = "It can contain grenades." icon_state = "grenade" - sprite_slots = 6 - storage_slots = 6 - can_hold = list( + +/obj/item/storage/pouch/grenade/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 6 + storage_datum.storage_slots = 6 + storage_datum.set_holdable(can_hold_list = list( /obj/item/explosive/grenade, - ) + )) /obj/item/storage/pouch/grenade/slightlyfull fill_type = /obj/item/explosive/grenade fill_number = 4 -/obj/item/storage/pouch/grenade/combat_patrol/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/grenade/combat_patrol/PopulateContents() new /obj/item/explosive/grenade/smokebomb(src) new /obj/item/explosive/grenade/smokebomb(src) new /obj/item/explosive/grenade/smokebomb/acid(src) @@ -457,10 +508,12 @@ /obj/item/storage/pouch/grenade/som desc = "It can contain grenades. This one looks to be made out of traditional SOM leather." icon_state = "grenade_som" - sprite_slots = null -/obj/item/storage/pouch/grenade/som/combat_patrol/Initialize(mapload) +/obj/item/storage/pouch/grenade/som/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/grenade/som/combat_patrol/PopulateContents() new /obj/item/explosive/grenade/smokebomb/som(src) new /obj/item/explosive/grenade/smokebomb/som(src) new /obj/item/explosive/grenade/smokebomb/satrapine(src) @@ -468,8 +521,7 @@ new /obj/item/explosive/grenade/flashbang/stun(src) new /obj/item/explosive/grenade/flashbang/stun(src) -/obj/item/storage/pouch/grenade/som/ert/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/grenade/som/ert/PopulateContents() new /obj/item/explosive/grenade/smokebomb/som(src) new /obj/item/explosive/grenade/smokebomb/som(src) new /obj/item/explosive/grenade/smokebomb/satrapine(src) @@ -490,11 +542,14 @@ name = "medkit pouch" desc = "A standard use medkit pouch that can contain all kinds of medical supplies and equipment." icon_state = "medkit" - sprite_slots = 1 w_class = WEIGHT_CLASS_BULKY //does not fit in backpack - max_w_class = WEIGHT_CLASS_BULKY - storage_slots = 7 - can_hold = list( + +/obj/item/storage/pouch/medkit/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 1 + storage_datum.max_w_class = WEIGHT_CLASS_BULKY + storage_datum.storage_slots = 7 + storage_datum.set_holdable(can_hold_list = list( /obj/item/healthanalyzer, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/pill, @@ -504,13 +559,12 @@ /obj/item/stack/medical, /obj/item/storage/pill_bottle/packet, /obj/item/reagent_containers/hypospray, - ) + )) /obj/item/storage/pouch/medkit/firstaid desc = "Standard marine first-aid pouch. Contains basic pills, splints, and a stabilizing injector." -/obj/item/storage/pouch/medkit/firstaid/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/medkit/firstaid/PopulateContents() new /obj/item/storage/pill_bottle/bicaridine(src) new /obj/item/storage/pill_bottle/kelotane(src) new /obj/item/storage/pill_bottle/tramadol(src) @@ -519,8 +573,7 @@ new /obj/item/stack/medical/splint(src) new /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline(src) -/obj/item/storage/pouch/medkit/medic/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/medkit/medic/PopulateContents() new /obj/item/stack/medical/heal_pack/advanced/burn_pack(src) new /obj/item/stack/medical/heal_pack/advanced/burn_pack(src) new /obj/item/stack/medical/heal_pack/advanced/burn_pack(src) @@ -532,22 +585,27 @@ /obj/item/storage/pouch/medkit/som desc = "A standard use medkit pouch that can contain all kinds of medical supplies and equipment. Made with traditional SOM leather." icon_state = "medkit_som" - sprite_slots = null + +/obj/item/storage/pouch/medkit/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/medical_injectors name = "medical injector pouch" desc = "A specialized medical pouch that can only hold auto-injectors." icon_state = "firstaid_injector" - sprite_slots = 5 - storage_slots = 8 - max_storage_space = 14 - can_hold = list(/obj/item/reagent_containers/hypospray/autoinjector) + +/obj/item/storage/pouch/medical_injectors/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 5 + storage_datum.storage_slots = 8 + storage_datum.max_storage_space = 14 + storage_datum.set_holdable(can_hold_list = list(/obj/item/reagent_containers/hypospray/autoinjector)) /obj/item/storage/pouch/medical_injectors/firstaid desc = "Standard marine first-aid injector pouch. Specialized to store only auto-injectors. Contains basic injectors, a stabilizing injector, stimulant injector, and an emergency injector." -/obj/item/storage/pouch/medical_injectors/firstaid/Initialize(mapload) //used in hvh and erts - . = ..() +/obj/item/storage/pouch/medical_injectors/firstaid/PopulateContents() //used in hvh and erts new /obj/item/reagent_containers/hypospray/autoinjector/bicaridine (src) new /obj/item/reagent_containers/hypospray/autoinjector/kelotane (src) new /obj/item/reagent_containers/hypospray/autoinjector/tramadol (src) @@ -557,8 +615,7 @@ new /obj/item/reagent_containers/hypospray/autoinjector/synaptizine (src) new /obj/item/reagent_containers/hypospray/autoinjector/russian_red (src) -/obj/item/storage/pouch/medical_injectors/standard/Initialize(mapload) //normal access variant available by default to marines - . = ..() +/obj/item/storage/pouch/medical_injectors/standard/PopulateContents() //normal access variant available by default to marines new /obj/item/reagent_containers/hypospray/autoinjector/bicaridine(src) new /obj/item/reagent_containers/hypospray/autoinjector/kelotane(src) new /obj/item/reagent_containers/hypospray/autoinjector/tramadol(src) @@ -568,8 +625,7 @@ new /obj/item/reagent_containers/hypospray/autoinjector/synaptizine(src) new /obj/item/reagent_containers/hypospray/autoinjector/synaptizine(src) -/obj/item/storage/pouch/medical_injectors/medic/Initialize(mapload) //corpsman autoinjector pouch gets upgraded, but more general chems. - . = ..() +/obj/item/storage/pouch/medical_injectors/medic/PopulateContents() //corpsman autoinjector pouch gets upgraded, but more general chems. new /obj/item/reagent_containers/hypospray/autoinjector/combat_advanced(src) new /obj/item/reagent_containers/hypospray/autoinjector/combat_advanced(src) new /obj/item/reagent_containers/hypospray/autoinjector/combat_advanced(src) @@ -582,10 +638,12 @@ /obj/item/storage/pouch/medical_injectors/som desc = "A specialized medical pouch that can only hold auto-injectors. This one looks to be made out of traditional SOM leather." icon_state = "firstaid_injector_som" - sprite_slots = null -/obj/item/storage/pouch/medical_injectors/som/firstaid/Initialize(mapload) +/obj/item/storage/pouch/medical_injectors/som/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/medical_injectors/som/firstaid/PopulateContents() new /obj/item/reagent_containers/hypospray/autoinjector/bicaridine (src) new /obj/item/reagent_containers/hypospray/autoinjector/kelotane (src) new /obj/item/reagent_containers/hypospray/autoinjector/tramadol (src) @@ -595,8 +653,7 @@ new /obj/item/reagent_containers/hypospray/autoinjector/synaptizine (src) new /obj/item/reagent_containers/hypospray/autoinjector/russian_red (src) -/obj/item/storage/pouch/medical_injectors/som/medic/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/medical_injectors/som/medic/PopulateContents() new /obj/item/reagent_containers/hypospray/autoinjector/combat_advanced(src) new /obj/item/reagent_containers/hypospray/autoinjector/combat_advanced(src) new /obj/item/reagent_containers/hypospray/autoinjector/combat_advanced(src) @@ -609,10 +666,12 @@ /obj/item/storage/pouch/medical_injectors/icc desc = "A specialized medical pouch that can only hold auto-injectors. This one looks to be made out of a synthetic tan fabric." icon_state = "firstaid_injector_icc" - sprite_slots = null -/obj/item/storage/pouch/medical_injectors/icc/firstaid/Initialize(mapload) +/obj/item/storage/pouch/medical_injectors/icc/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/medical_injectors/icc/firstaid/PopulateContents() new /obj/item/reagent_containers/hypospray/autoinjector/bicaridine (src) new /obj/item/reagent_containers/hypospray/autoinjector/kelotane (src) new /obj/item/reagent_containers/hypospray/autoinjector/tramadol (src) @@ -622,18 +681,18 @@ new /obj/item/reagent_containers/hypospray/autoinjector/synaptizine (src) new /obj/item/reagent_containers/hypospray/autoinjector/russian_red (src) - /obj/item/storage/pouch/med_lolipops name = "medical lolipop pouch" desc = "A small medical pouch with three seperate pockets to sort your medical lollipops." icon_state = "medlolly" - sprite_slots = 3 - storage_slots = 3 - - can_hold = list(/obj/item/storage/box/combat_lolipop) -/obj/item/storage/pouch/med_lolipops/Initialize(mapload) +/obj/item/storage/pouch/med_lolipops/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = 3 + storage_datum.storage_slots = 3 + storage_datum.set_holdable(can_hold_list = list(/obj/item/storage/box/combat_lolipop)) + +/obj/item/storage/pouch/med_lolipops/PopulateContents() new /obj/item/storage/box/combat_lolipop(src) new /obj/item/storage/box/combat_lolipop/tricord(src) new /obj/item/storage/box/combat_lolipop/tramadol(src) @@ -642,36 +701,33 @@ name = "berry bar pouch" desc = "A pouch containing all of your berry needs." icon_state = "barpouch" - sprite_slots = 3 - storage_slots = 6 - can_hold = list(/obj/item/reagent_containers/food/snacks/wrapped/berrybar) + fill_type = /obj/item/reagent_containers/food/snacks/wrapped/berrybar + fill_number = 6 -/obj/item/storage/pouch/berrypouch/Initialize(mapload) +/obj/item/storage/pouch/berrypouch/Initialize(mapload, ...) . = ..() - new /obj/item/reagent_containers/food/snacks/wrapped/berrybar(src) - new /obj/item/reagent_containers/food/snacks/wrapped/berrybar(src) - new /obj/item/reagent_containers/food/snacks/wrapped/berrybar(src) - new /obj/item/reagent_containers/food/snacks/wrapped/berrybar(src) - new /obj/item/reagent_containers/food/snacks/wrapped/berrybar(src) - new /obj/item/reagent_containers/food/snacks/wrapped/berrybar(src) + storage_datum.sprite_slots = 3 + storage_datum.storage_slots = 6 + storage_datum.set_holdable(can_hold_list = list(/obj/item/reagent_containers/food/snacks/wrapped/berrybar)) /obj/item/storage/pouch/surgery - name = "surgery tools pouch" desc = "An eye catching white medical pouch capable of holding all your surgical tools." icon_state = "surgery" - sprite_slots = 1 - storage_slots = 12 - max_storage_space = 24 - can_hold = list( + +/obj/item/storage/pouch/surgery/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 1 + storage_datum.storage_slots = 12 + storage_datum.max_storage_space = 24 + storage_datum.set_holdable(can_hold_list = list( /obj/item/tool/surgery, /obj/item/stack/nanopaste, /obj/item/tweezers, /obj/item/tweezers_advanced, - ) + )) -/obj/item/storage/pouch/surgery/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/surgery/PopulateContents() new /obj/item/tool/surgery/scalpel/manager(src) new /obj/item/tool/surgery/scalpel(src) new /obj/item/tool/surgery/hemostat(src) @@ -688,20 +744,27 @@ name = "document pouch" desc = "It can contain papers and clipboards." icon_state = "document" - storage_slots = 7 - can_hold = list( + +/obj/item/storage/pouch/document/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 7 + storage_datum.set_holdable(can_hold_list = list( /obj/item/paper, /obj/item/clipboard, - ) + )) + /obj/item/storage/pouch/field_pouch name = "field utility pouch" - storage_slots = 5 - max_w_class = WEIGHT_CLASS_NORMAL - icon_state = "utility" - sprite_slots = 4 - draw_mode = 1 desc = "It can contain a motion detector, signaller, beacons, map tablets, radios, papers and other handy battlefield communication, navigation, and detection devices." - can_hold = list( + icon_state = "utility" + +/obj/item/storage/pouch/field_pouch/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 5 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.sprite_slots = 4 + storage_datum.draw_mode = TRUE + storage_datum.set_holdable(can_hold_list = list( /obj/item/attachable/motiondetector, /obj/item/radio, /obj/item/assembly/signaler, @@ -721,29 +784,29 @@ /obj/item/toy/deck, /obj/item/paper, /obj/item/clipboard, - ) + )) -/obj/item/storage/pouch/field_pouch/full/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/field_pouch/full/PopulateContents() new /obj/item/attachable/motiondetector (src) new /obj/item/whistle (src) new /obj/item/radio (src) new /obj/item/binoculars/tactical (src) - /obj/item/storage/pouch/electronics name = "electronics pouch" desc = "It is designed to hold most electronics, power cells and circuitboards." icon_state = "electronics" - sprite_slots = 1 - storage_slots = 6 - can_hold = list( + +/obj/item/storage/pouch/electronics/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 1 + storage_datum.storage_slots = 6 + storage_datum.set_holdable(can_hold_list = list( /obj/item/circuitboard, /obj/item/cell, - ) + )) -/obj/item/storage/pouch/electronics/full/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/electronics/full/PopulateContents() new /obj/item/circuitboard/airlock (src) new /obj/item/circuitboard/apc (src) new /obj/item/cell/high (src) @@ -752,11 +815,14 @@ /obj/item/storage/pouch/construction name = "construction pouch" desc = "It's designed to hold construction materials - glass/metal sheets, metal rods, barbed wire, cable coil, and empty sandbags. It also has a hook for an entrenching tool." - storage_slots = 4 - max_w_class = WEIGHT_CLASS_NORMAL icon_state = "construction" - sprite_slots = 1 - can_hold = list( + +/obj/item/storage/pouch/construction/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 4 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.sprite_slots = 1 + storage_datum.set_holdable(can_hold_list = list( /obj/item/stack/barbed_wire, /obj/item/stack/sheet, /obj/item/stack/rods, @@ -764,16 +830,14 @@ /obj/item/tool/shovel/etool, /obj/item/stack/sandbags_empty, /obj/item/stack/sandbags, - ) + )) -/obj/item/storage/pouch/construction/full/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/construction/full/PopulateContents() new /obj/item/stack/sandbags_empty/half (src) new /obj/item/stack/barbed_wire/small_stack (src) new /obj/item/tool/shovel/etool (src) -/obj/item/storage/pouch/construction/equippedengineer/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/construction/equippedengineer/PopulateContents() new /obj/item/stack/sandbags_empty/half (src) new /obj/item/stack/sheet/metal/large_stack (src) new /obj/item/stack/sheet/plasteel/medium_stack (src) @@ -781,15 +845,20 @@ /obj/item/storage/pouch/construction/som desc = "It's designed to hold construction materials - glass/metal sheets, metal rods, barbed wire, cable coil, and empty sandbags. It also has a hook for an entrenching tool. Made with traditional SOM leather." icon_state = "construction_som" - sprite_slots = null + +/obj/item/storage/pouch/construction/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/construction/icc desc = "It's designed to hold construction materials - glass/metal sheets, metal rods, barbed wire, cable coil, and empty sandbags. It also has a hook for an entrenching tool. Made with synthetic tan." icon_state = "construction_icc" - sprite_slots = null -/obj/item/storage/pouch/construction/icc/full/Initialize(mapload) +/obj/item/storage/pouch/construction/icc/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/construction/icc/full/PopulateContents() new /obj/item/stack/sheet/metal/large_stack (src) new /obj/item/stack/sheet/metal/large_stack (src) new /obj/item/stack/sheet/plasteel/medium_stack (src) @@ -797,11 +866,14 @@ /obj/item/storage/pouch/tools name = "tools pouch" desc = "It's designed to hold maintenance tools - screwdriver, wrench, cable coil, etc. It also has a hook for an entrenching tool." - storage_slots = 5 - max_w_class = WEIGHT_CLASS_NORMAL icon_state = "tools" - sprite_slots = 1 - can_hold = list( + +/obj/item/storage/pouch/tools/Initialize(mapload, ...) + . = ..() + storage_datum.storage_slots = 5 + storage_datum.max_w_class = WEIGHT_CLASS_NORMAL + storage_datum.sprite_slots = 1 + storage_datum.set_holdable(can_hold_list = list( /obj/item/tool/screwdriver, /obj/item/tool/wirecutters, /obj/item/tool/weldingtool, @@ -815,10 +887,9 @@ /obj/item/tool/taperoll/engineering, /obj/item/tool/extinguisher/mini, /obj/item/tool/shovel/etool, - ) + )) -/obj/item/storage/pouch/tools/full/Initialize(mapload) - . = ..() +/obj/item/storage/pouch/tools/full/PopulateContents() new /obj/item/tool/screwdriver (src) new /obj/item/tool/wirecutters (src) new /obj/item/tool/weldingtool (src) @@ -828,10 +899,12 @@ /obj/item/storage/pouch/tools/som desc = "It's designed to hold maintenance tools - screwdriver, wrench, cable coil, etc. It also has a hook for an entrenching tool. Made with traditional SOM leather." icon_state = "tools_som" - sprite_slots = null -/obj/item/storage/pouch/tools/som/full/Initialize(mapload) +/obj/item/storage/pouch/tools/som/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/tools/som/full/PopulateContents() new /obj/item/tool/screwdriver (src) new /obj/item/tool/wirecutters (src) new /obj/item/tool/weldingtool (src) @@ -841,10 +914,12 @@ /obj/item/storage/pouch/tools/icc desc = "It's designed to hold maintenance tools - screwdriver, wrench, cable coil, etc. It also has a hook for an entrenching tool. Made with a synthetic tan fiber." icon_state = "tools_icc" - sprite_slots = null -/obj/item/storage/pouch/tools/icc/full/Initialize(mapload) +/obj/item/storage/pouch/tools/icc/Initialize(mapload, ...) . = ..() + storage_datum.sprite_slots = null + +/obj/item/storage/pouch/tools/icc/full/PopulateContents() new /obj/item/tool/screwdriver (src) new /obj/item/tool/wirecutters (src) new /obj/item/tool/weldingtool (src) @@ -855,10 +930,13 @@ name = "shotgun shell pouch" desc = "A pouch specialized for holding shotgun ammo." icon_state = "shotshells" - sprite_slots = 4 - storage_slots = 4 - draw_mode = 0 - can_hold = list(/obj/item/ammo_magazine/handful) + +/obj/item/storage/pouch/shotgun/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = 4 + storage_datum.storage_slots = 4 + storage_datum.draw_mode = FALSE + storage_datum.set_holdable(can_hold_list = list(/obj/item/ammo_magazine/handful)) /obj/item/storage/pouch/shotgun/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/ammo_magazine)) @@ -870,7 +948,7 @@ to_chat(user, span_warning("[M] is empty.")) return - if(length(contents) >= storage_slots) + if(length(contents) >= storage_datum.storage_slots) to_chat(user, span_warning("[src] is full.")) return @@ -879,8 +957,8 @@ if(!do_after(user, 1.5 SECONDS, NONE, src, BUSY_ICON_GENERIC)) return - for(var/x in 1 to (storage_slots - length(contents))) - var/cont = handle_item_insertion(M.create_handful(), 1, user) + for(var/x in 1 to (storage_datum.storage_slots - length(contents))) + var/cont = storage_datum.handle_item_insertion(M.create_handful(), 1, user) if(!cont) break @@ -893,20 +971,23 @@ /obj/item/storage/pouch/shotgun/som desc = "A pouch specialized for holding shotgun ammo. Made with traditional SOM leather." icon_state = "shotshells_som" - sprite_slots = null + +/obj/item/storage/pouch/shotgun/som/Initialize(mapload, ...) + . = ..() + storage_datum.sprite_slots = null /obj/item/storage/pouch/protein_pack name = "\improper protein pack pouch" desc = "A storage pouch designed to hold a moderate amount of protein packs." icon_state = "p_pouch" item_state = "survival" - storage_slots = 10 - max_storage_space = 10 - sprite_slots = 1 - max_w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/reagent_containers/food/snacks/protein_pack) + fill_type = /obj/item/reagent_containers/food/snacks/protein_pack + fill_number = 10 -/obj/item/storage/pouch/protein_pack/Initialize(mapload) +/obj/item/storage/pouch/protein_pack/Initialize(mapload, ...) . = ..() - for(var/i in 1 to storage_slots) - new /obj/item/reagent_containers/food/snacks/protein_pack(src) + storage_datum.storage_slots = 10 + storage_datum.max_storage_space = 10 + storage_datum.sprite_slots = 1 + storage_datum.max_w_class = WEIGHT_CLASS_TINY + storage_datum.set_holdable(can_hold_list = list(/obj/item/reagent_containers/food/snacks/protein_pack)) diff --git a/code/game/objects/items/storage/reagent_pouch.dm b/code/game/objects/items/storage/reagent_pouch.dm index 8e1b7834581dc..fcb128ebda813 100644 --- a/code/game/objects/items/storage/reagent_pouch.dm +++ b/code/game/objects/items/storage/reagent_pouch.dm @@ -46,15 +46,10 @@ /obj/item/storage/pouch/pressurized_reagent_pouch //The actual pouch itself and all its function name = "pressurized reagent pouch" w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY - allow_drawing_method = TRUE icon_state = "reagent_pouch" desc = "A very large reagent pouch. It is used to refill custom injectors, and can also store one.\ You can Alt-Click to remove the canister in order to refill it." - can_hold = list(/obj/item/reagent_containers/hypospray) - cant_hold = list(/obj/item/reagent_containers/glass/reagent_canister) //To prevent chat spam when you try to put the container in item_flags = NOBLUDGEON - draw_mode = TRUE ///The internal container of the pouch. Holds the reagent that you use to refill the connected injector var/obj/item/reagent_containers/glass/reagent_canister/inner ///List of chemicals we fill up our pouch with on Initialize() @@ -64,6 +59,12 @@ /obj/item/storage/pouch/pressurized_reagent_pouch/Initialize(mapload) . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_BULKY + storage_datum.allow_drawing_method = TRUE + //cant_hold_list to prevent chat spam when you try to put the container in + storage_datum.set_holdable(can_hold_list = list(/obj/item/reagent_containers/hypospray), cant_hold_list = list(/obj/item/reagent_containers/glass/reagent_canister)) + storage_datum.draw_mode = TRUE + inner = new /obj/item/reagent_containers/glass/reagent_canister new /obj/item/reagent_containers/hypospray/autoinjector/r_pouch(src) for(var/datum/reagent/chem_type AS in chemicals_to_fill) diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index 73e995524ebfd..477d1162bac9d 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -11,20 +11,21 @@ var/l_hacking = 0 var/open = 0 w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - max_storage_space = 14 + +/obj/item/storage/secure/Initialize(mapload, ...) + . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_SMALL + storage_datum.max_storage_space = 14 /obj/item/storage/secure/examine(mob/user) . = ..() . += "The service panel is [open ? "open" : "closed"]." - /obj/item/storage/secure/MouseDrop(over_object, src_location, over_location) if (locked) return ..() - /obj/item/storage/secure/interact(mob/user) . = ..() if(.) @@ -46,13 +47,11 @@ dat += "
\n>[message]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n" - var/datum/browser/popup = new(user, "caselock", "
[src]
") popup.set_content(dat) popup.open() return TRUE - /obj/item/storage/secure/Topic(href, href_list) . = ..() if(.) @@ -74,7 +73,7 @@ locked = TRUE overlays = null code = null - close(usr) + storage_datum.close(usr) else code += href_list["type"] if(length(code) > 5) @@ -82,7 +81,6 @@ updateUsrDialog() - /obj/item/storage/secure/attackby(obj/item/I, mob/user, params) if(!locked) return ..() @@ -105,7 +103,6 @@ l_hacking = FALSE return - l_setshort = TRUE l_set = FALSE user.show_message(span_warning(" Internal memory reset. Please give it a few seconds to reinitialize.")) @@ -113,7 +110,6 @@ l_setshort = FALSE l_hacking = FALSE - // ----------------------------- // Secure Briefcase // ----------------------------- @@ -132,27 +128,24 @@ throw_range = 4 w_class = WEIGHT_CLASS_BULKY - /obj/item/storage/secure/briefcase/Initialize(mapload) . = ..() new /obj/item/paper(src) new /obj/item/tool/pen(src) - /obj/item/storage/secure/briefcase/attack_hand(mob/user) if(loc == user && locked) to_chat(user, span_warning("[src] is locked and cannot be opened!")) return if(loc == user && !locked) - open(user) + storage_datum.open(user) return . = ..() for(var/mob/M in range(1)) if(M.s_active == src) - close(M) - + storage_datum.close(M) // ----------------------------- // Secure Safe @@ -168,13 +161,15 @@ atom_flags = CONDUCT force = 8 w_class = WEIGHT_CLASS_GIGANTIC - max_w_class = WEIGHT_CLASS_GIGANTIC anchored = TRUE density = FALSE - cant_hold = list(/obj/item/storage/secure/briefcase) /obj/item/storage/secure/safe/Initialize(mapload, ...) . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_GIGANTIC + storage_datum.set_holdable(cant_hold_list = list(/obj/item/storage/secure/briefcase)) + +/obj/item/storage/secure/safe/PopulateContents() new /obj/item/paper(src) new /obj/item/tool/pen(src) diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index 8e5da75e3bbcb..3fb1386cd9f65 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -1,10 +1,13 @@ -// To clarify: -// For use_to_pickup and allow_quick_gather functionality, -// see item/attackby() (/game/objects/items.dm) -// Do not remove this functionality without good reason, cough reagent_containers cough. -// -Sayu - +/*! + * Contains obj/item/storage template + */ +/** + * When creating a new storage, you may use /obj/item/storage as a template which automates create_storage() on .../Initialize + * However, this is no longer a hard requirement, since storage is a /datum now + * Just make sure to pass whatever arguments you need to create_storage() which is an /atom level proc + * (This means that any atom can have storage :D ) + */ /obj/item/storage name = "storage" icon = 'icons/obj/items/storage/storage.dmi' @@ -13,886 +16,38 @@ slot_r_hand_str = 'icons/mob/inhands/items/containers_right.dmi', ) w_class = WEIGHT_CLASS_NORMAL - var/list/can_hold = list() //List of objects which this item can store (if set, it can't store anything else) - var/list/cant_hold = list() //List of objects which this item can't store (in effect only if can_hold isn't set) - var/list/bypass_w_limit = list() //a list of objects which this item can store despite not passing the w_class limit - /** - * Associated list of types and their max count, formatted as - * storage_type_limits = list( - * /obj/A = 3, - * ) - * - * Any inserted objects will decrement the allowed count of every listed type which matches or is a parent of that object. - * With entries for both /obj/A and /obj/A/B, inserting a B requires non-zero allowed count remaining for, and reduces, both. - */ - var/list/storage_type_limits - ///In slotless storage, stores areas where clicking will refer to the associated item - var/list/click_border_start = list() - var/list/click_border_end = list() - ///Max size of objects that this object can store (in effect only if can_hold isn't set) - var/max_w_class = WEIGHT_CLASS_SMALL - ///The sum of the storage costs of all the items in this storage item. - var/max_storage_space = 14 - ///The number of storage slots in this container. - var/storage_slots = 7 - ///Defines how many versions of the sprites that gets progressively emptier as they get closer to "_0" in .dmi. - var/sprite_slots = null - var/atom/movable/screen/storage/boxes = null - ///storage UI - var/atom/movable/screen/storage/storage_start = null - var/atom/movable/screen/storage/storage_continue = null - var/atom/movable/screen/storage/storage_end = null - var/atom/movable/screen/storage/stored_start = null - var/atom/movable/screen/storage/stored_continue = null - var/atom/movable/screen/storage/stored_end = null - var/atom/movable/screen/close/closer = null - ///whether our storage box on hud changes color when full. - var/show_storage_fullness = TRUE - ///Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. - var/use_to_pickup - ///Set this to make the storage item group contents of the same type and display them as a number. - var/display_contents_with_number - ///Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. - var/allow_quick_empty - ///Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. - var/allow_quick_gather - ///whether this object can change its drawing method (pouches) - var/allow_drawing_method - ///0 = will open the inventory if you click on the storage container, 1 = will draw from the inventory if you click on the storage container - var/draw_mode = 0 - ////0 = pick one at a time, 1 = pick all on tile - var/collection_mode = 1; - ///BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard - var/foldable = null - ///sound played when used. null for no sound. - var/use_sound = "rustle" - ///Has it been opened before? - var/opened = 0 - ///list of mobs currently seeing the storage's contents - var/list/content_watchers = list() - ///How long does it take to put items into or out of this, in ticks - var/access_delay = 0 - ///What item do you use to tactical refill this - var/list/obj/item/storage/refill_types - ///What sound gets played when the item is tactical refilled - var/refill_sound = null - ///Flags for specifically storage items - var/storage_flags = NONE - -/obj/item/storage/MouseDrop(obj/over_object as obj) - if(!ishuman(usr)) - return - - if(usr.lying_angle) - return - - if(over_object == usr && Adjacent(usr)) // this must come before the screen objects only block - open(usr) - return - - if(!istype(over_object, /atom/movable/screen)) - return ..() - - if(HAS_TRAIT(src, TRAIT_NODROP)) - return - - //Makes sure that the storage is equipped, so that we can't drag it into our hand from miles away. - //There's got to be a better way of doing this. - if(loc != usr || (loc && loc.loc == usr)) - return - - if(!usr.restrained() && !usr.stat) - switch(over_object.name) - if("r_hand") - usr.temporarilyRemoveItemFromInventory(src) - if(!usr.put_in_r_hand(src)) - usr.dropItemToGround(src) - if("l_hand") - usr.temporarilyRemoveItemFromInventory(src) - if(!usr.put_in_l_hand(src)) - usr.dropItemToGround(src) - -/obj/item/storage/proc/return_inv() - - var/list/L = list( ) - - L += src.contents - - for(var/obj/item/storage/S in src) - L += S.return_inv() - for(var/obj/item/gift/G in src) - L += G.gift - if (istype(G.gift, /obj/item/storage)) - L += G.gift:return_inv() - return L - -/obj/item/storage/proc/show_to(mob/user as mob) - if(user.s_active != src) - for(var/obj/item/I in src) - if(I.on_found(user)) - return - if(user.s_active) - user.s_active.hide_from(user) - user.client.screen -= boxes - user.client.screen -= storage_start - user.client.screen -= storage_continue - user.client.screen -= storage_end - user.client.screen -= closer - user.client.screen -= contents - user.client.screen += closer - user.client.screen += contents - - if(storage_slots) - user.client.screen += boxes - else - user.client.screen += storage_start - user.client.screen += storage_continue - user.client.screen += storage_end - - user.s_active = src - content_watchers |= user - - -/obj/item/storage/proc/hide_from(mob/user as mob) - - if(!user.client) - return - user.client.screen -= src.boxes - user.client.screen -= storage_start - user.client.screen -= storage_continue - user.client.screen -= storage_end - user.client.screen -= src.closer - user.client.screen -= src.contents - if(user.s_active == src) - user.s_active = null - content_watchers -= user - - -/obj/item/storage/proc/can_see_content() - var/list/lookers = list() - for(var/i in content_watchers) - var/mob/M = i - if(M.s_active == src && M.client) - lookers |= M - else - content_watchers -= M - return lookers - -/obj/item/storage/proc/open(mob/user) - if(!opened) - orient2hud() - opened = 1 - if (use_sound && user.stat != DEAD) - playsound(src.loc, src.use_sound, 25, 1, 3) - - if (user.s_active) - user.s_active.close(user) - show_to(user) - return TRUE - - -/obj/item/storage/proc/close(mob/user) - hide_from(user) - - -///This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. The numbers are calculated from the bottom-left The bottom-left slot being 1,1. -/obj/item/storage/proc/orient_objs(tx, ty, mx, my) - var/cx = tx - var/cy = ty - boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" - for(var/obj/O in src.contents) - O.screen_loc = "[cx],[cy]" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if (cx > mx) - cx = tx - cy-- - closer.screen_loc = "[mx+1],[my]" - if(show_storage_fullness) - boxes.update_fullness(src) - -///This proc draws out the inventory and places the items on it. It uses the standard position. -/obj/item/storage/proc/slot_orient_objs(rows, cols, list/obj/item/display_contents) - var/cx = 4 - var/cy = 2+rows - boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" - - if(display_contents_with_number) - for(var/datum/numbered_display/ND in display_contents) - ND.sample_object.mouse_opacity = 2 - ND.sample_object.screen_loc = "[cx]:16,[cy]:16" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - cx++ - if (cx > (4+cols)) - cx = 4 - cy-- - else - for(var/obj/O in contents) - O.mouse_opacity = 2 //So storage items that start with contents get the opacity trick. - O.screen_loc = "[cx]:16,[cy]:16" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if (cx > (4+cols)) - cx = 4 - cy-- - closer.screen_loc = "[4+cols+1]:16,2:16" - if(show_storage_fullness) - boxes.update_fullness(src) - -/obj/item/storage/proc/space_orient_objs(list/obj/item/display_contents) - - ///should be equal to default backpack capacity - var/baseline_max_storage_space = 21 - ///length of sprite for start and end of the box representing total storage space - var/storage_cap_width = 2 - ///length of sprite for start and end of the box representing the stored item - var/stored_cap_width = 4 - ///length of sprite for the box representing total storage space - var/storage_width = min( round( 258 * max_storage_space/baseline_max_storage_space ,1) ,284) - - click_border_start.Cut() - click_border_end.Cut() - storage_start.overlays.Cut() - - if(!opened) //initialize background box - var/matrix/M = matrix() - M.Scale((storage_width-storage_cap_width*2+3)/32,1) - storage_continue.transform = M - storage_start.screen_loc = "4:16,2:16" - storage_continue.screen_loc = "4:[round(storage_cap_width+(storage_width-storage_cap_width*2)/2+2)],2:16" - storage_end.screen_loc = "4:[19+storage_width-storage_cap_width],2:16" - - var/startpoint = 0 - var/endpoint = 1 - - for(var/obj/item/O in contents) - startpoint = endpoint + 1 - endpoint += storage_width * O.w_class / max_storage_space - - click_border_start.Add(startpoint) - click_border_end.Add(endpoint) - - var/matrix/M_start = matrix() - var/matrix/M_continue = matrix() - var/matrix/M_end = matrix() - M_start.Translate(startpoint,0) - M_continue.Scale((endpoint-startpoint-stored_cap_width*2)/32,1) - M_continue.Translate(startpoint+stored_cap_width+(endpoint-startpoint-stored_cap_width*2)/2 - 16,0) - M_end.Translate(endpoint-stored_cap_width,0) - stored_start.transform = M_start - stored_continue.transform = M_continue - stored_end.transform = M_end - storage_start.overlays += src.stored_start - storage_start.overlays += src.stored_continue - storage_start.overlays += src.stored_end - - O.screen_loc = "4:[round((startpoint+endpoint)/2)+2],2:16" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - - closer.screen_loc = "4:[storage_width+19],2:16" - - - -/atom/movable/screen/storage/Click(location, control, params) - if(usr.incapacitated(TRUE)) - return - - var/list/PL = params2list(params) - - if(!master) - return - - var/obj/item/storage/S = master - var/obj/item/I = usr.get_active_held_item() - if(I) - master.attackby(I, usr) - return - - // Taking something out of the storage screen (including clicking on item border overlay) - var/list/screen_loc_params = splittext(PL["screen-loc"], ",") - var/list/screen_loc_X = splittext(screen_loc_params[1],":") - var/click_x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 144 - - for(var/i = 1 to length(S.click_border_start)) - if(S.click_border_start[i] > click_x || click_x > S.click_border_end[i]) - continue - if(length(S.contents) < i) - continue - I = S.contents[i] - I.attack_hand(usr) - return - -/datum/numbered_display - var/obj/item/sample_object - var/number - -/datum/numbered_display/New(obj/item/sample) - if(!istype(sample)) - qdel(src) - sample_object = sample - number = 1 - -/datum/numbered_display/Destroy() - sample_object = null - return ..() - -///This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. -/obj/item/storage/proc/orient2hud() - - var/adjusted_contents = length(contents) - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/I in contents) - var/found = 0 - for(var/datum/numbered_display/ND in numbered_contents) - if(ND.sample_object.type == I.type) - ND.number++ - found = 1 - break - if(!found) - adjusted_contents++ - numbered_contents.Add( new/datum/numbered_display(I) ) - - if(storage_slots == null) - src.space_orient_objs(numbered_contents) - else - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - slot_orient_objs(row_num, col_count, numbered_contents) - -///This proc return 1 if the item can be picked up and 0 if it can't. Set the warning to stop it from printing messages -/obj/item/storage/proc/can_be_inserted(obj/item/W as obj, warning = TRUE) - if(!istype(W) || HAS_TRAIT(W, TRAIT_NODROP)) - return //Not an item - - if(loc == W) - return FALSE //Means the item is already in the storage item - if(storage_slots != null && length(contents) >= storage_slots) - if(warning) - to_chat(usr, span_notice("[src] is full, make some space.")) - return FALSE //Storage item is full - - if(length(can_hold)) - if(!is_type_in_typecache(W, can_hold)) - if(warning) - to_chat(usr, span_notice("[src] cannot hold [W].")) - return FALSE - - if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold. - if(warning) - to_chat(usr, span_notice("[src] cannot hold [W].")) - return FALSE - - if(!is_type_in_typecache(W, bypass_w_limit) && W.w_class > max_w_class) - if(warning) - to_chat(usr, span_notice("[W] is too long for this [src].")) - return FALSE - - var/sum_storage_cost = W.w_class - for(var/obj/item/I in contents) - sum_storage_cost += I.w_class - - if(sum_storage_cost > max_storage_space) - if(warning) - to_chat(usr, span_notice("[src] is full, make some space.")) - return FALSE - - if(W.w_class >= w_class && istype(W, /obj/item/storage) && !is_type_in_typecache(W.type, bypass_w_limit)) - if(!istype(src, /obj/item/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. - if(warning) - to_chat(usr, span_notice("[src] cannot hold [W] as it's a storage item of the same size.")) - return FALSE //To prevent the stacking of same sized storage items. - - for(var/limited_type in storage_type_limits) - if(!istype(W, limited_type)) - continue - if(storage_type_limits[limited_type] == 0) - if(warning) - to_chat(usr, span_warning("[src] can't fit any more of those.") ) - return FALSE - - if(istype(W, /obj/item/tool/hand_labeler)) - var/obj/item/tool/hand_labeler/L = W - if(L.on) - return FALSE - else - return TRUE - - return TRUE - -/** - * This proc handles the delay associated with a storage object. - * If there is no delay, or the delay is negative, it simply returns TRUE. - * Should return true if the access delay is completed successfully. - */ -/obj/item/storage/proc/handle_access_delay(obj/item/accessed, mob/user, taking_out = TRUE, alert_user = TRUE) - if(!access_delay || !should_access_delay(accessed, user, taking_out)) - return TRUE - - if(LAZYLEN(user.do_actions)) - to_chat(user, span_warning("You are busy doing something else!")) - return FALSE - - if(!alert_user) - return do_after(user, access_delay, IGNORE_USER_LOC_CHANGE, src) - - to_chat(user, "You begin to [taking_out ? "take" : "put"] [accessed] [taking_out ? "out of" : "into"] [src]") - if(!do_after(user, access_delay, IGNORE_USER_LOC_CHANGE, src)) - to_chat(user, span_warning("You fumble [accessed]!")) - return FALSE - return TRUE - -/** - * This proc checks to see if we should actually delay access in this scenario - * This proc should return TRUE or FALSE - */ -/obj/item/storage/proc/should_access_delay(obj/item/accessed, mob/user, taking_out) - return FALSE - -/** - * This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. - * That's done by can_be_inserted() - * The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, - * such as when picking up all the items on a tile with one click. - * user can be null, it refers to the potential mob doing the insertion. - */ -/obj/item/storage/proc/handle_item_insertion(obj/item/item, prevent_warning = 0, mob/user) - if(!istype(item)) - return FALSE - if(!handle_access_delay(item, user, taking_out=FALSE)) - item.forceMove(item.drop_location()) - return FALSE - if(user && item.loc == user) - if(!user.transferItemToLoc(item, src)) - return FALSE - else - item.forceMove(src) - item.on_enter_storage(src) - if(user) - if (user.s_active != src) - user.client?.screen -= item - if(!prevent_warning) - insertion_message(item, user) - orient2hud() - for(var/mob/M in can_see_content()) - show_to(M) - if (storage_slots) - item.mouse_opacity = 2 //not having to click the item's tiny sprite to take it out of the storage. - update_icon() - for(var/limited_type in storage_type_limits) - if(istype(item, limited_type)) - storage_type_limits[limited_type] -= 1 - return TRUE - -///Output a message when an item is inserted into a storage object -/obj/item/storage/proc/insertion_message(obj/item/item, mob/user) - var/visidist = item.w_class >= WEIGHT_CLASS_NORMAL ? 3 : 1 - user.visible_message(span_notice("[user] puts \a [item] into \the [name]."),\ - span_notice("You put \the [item] into \the [name]."),\ - null, visidist) - -///Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target -/obj/item/storage/proc/remove_from_storage(obj/item/item, atom/new_location, mob/user) - if(!istype(item)) - return FALSE - - if(!handle_access_delay(item, user)) - return FALSE - - for(var/mob/M AS in can_see_content()) - if(!M.client) - continue - M.client.screen -= item - - if(new_location) - if(ismob(new_location)) - item.layer = ABOVE_HUD_LAYER - item.plane = ABOVE_HUD_PLANE - item.pickup(new_location) - else - item.layer = initial(item.layer) - item.plane = initial(item.plane) - item.forceMove(new_location) - else - item.moveToNullspace() - - orient2hud() - - for(var/i in can_see_content()) - var/mob/M = i - show_to(M) - - if(!QDELETED(item)) - item.on_exit_storage(src) - item.mouse_opacity = initial(item.mouse_opacity) - - update_icon() - - for(var/limited_type in storage_type_limits) - if(istype(item, limited_type)) - storage_type_limits[limited_type] += 1 - - return TRUE - -///This proc is called when you want to place an item into the storage item. -/obj/item/storage/attackby(obj/item/I, mob/user, params) - . = ..() - if(.) - return - - if(length(refill_types)) - for(var/typepath in refill_types) - if(istype(I, typepath)) - return do_refill(I, user) - - if(!can_be_inserted(I)) - return FALSE - return handle_item_insertion(I, FALSE, user) - -///Refills the storage from the refill_types item -/obj/item/storage/proc/do_refill(obj/item/storage/refiller, mob/user) - if(!length(refiller.contents)) - user.balloon_alert(user, "[refiller] is empty.") - return - - if(!can_be_inserted(refiller.contents[1])) - user.balloon_alert(user, "[src] is full.") - return - - user.balloon_alert(user, "Refilling.") - - if(!do_after(user, 15, NONE, src, BUSY_ICON_GENERIC)) - return - - playsound(user.loc, refill_sound, 15, 1, 6) - for(var/obj/item/IM in refiller) - if(!can_be_inserted(refiller.contents[1])) - return - - refiller.remove_from_storage(IM) - handle_item_insertion(IM, TRUE, user) - -/obj/item/storage/attack_hand(mob/living/user) - if (loc == user) - if(draw_mode && ishuman(user) && length(contents)) - var/obj/item/I = contents[length(contents)] - I.attack_hand(user) - return - else if(open(user)) - return - . = ..() - for(var/mob/M AS in content_watchers) - close(M) - - -/obj/item/storage/attack_ghost(mob/user) - open(user) - - -/obj/item/storage/verb/toggle_gathering_mode() - set name = "Switch Gathering Method" - set category = "Object" - - collection_mode = !collection_mode - switch (collection_mode) - if(1) - to_chat(usr, "[src] now picks up all items in a tile at once.") - if(0) - to_chat(usr, "[src] now picks up one item at a time.") - - - -/obj/item/storage/verb/toggle_draw_mode() - set name = "Switch Storage Drawing Method" - set category = "Object" - draw_mode = !draw_mode - if(draw_mode) - to_chat(usr, "Clicking [src] with an empty hand now puts the last stored item in your hand.") - else - to_chat(usr, "Clicking [src] with an empty hand now opens the pouch storage menu.") - - - -/obj/item/storage/proc/quick_empty() - - if((!ishuman(usr) && loc != usr) || usr.restrained()) - return - - var/turf/T = get_turf(src) - hide_from(usr) - for(var/obj/item/I in contents) - remove_from_storage(I, T, usr) - -///Delete everything that's inside the storage -/obj/item/storage/proc/delete_contents() - for(var/obj/item/I AS in contents) - I.on_exit_storage(src) - qdel(I) - -///finds a stored item to draw -/obj/item/storage/do_quick_equip(mob/user) - if(!length(contents)) - return FALSE //we don't want to equip the storage item itself - var/obj/item/W = contents[length(contents)] - if(!remove_from_storage(W, null, user)) - return FALSE - return W + ///Determines what subtype of storage is on our item, see datums\storage\subtypes + var/storage_type = /datum/storage /obj/item/storage/Initialize(mapload, ...) . = ..() - PopulateContents() - if(length(can_hold)) - can_hold = typecacheof(can_hold) - else if(length(cant_hold)) - cant_hold = typecacheof(cant_hold) - if(length(bypass_w_limit)) - bypass_w_limit = typecacheof(bypass_w_limit) - - if(!allow_quick_gather) - verbs -= /obj/item/storage/verb/toggle_gathering_mode - - if(!allow_drawing_method) - verbs -= /obj/item/storage/verb/toggle_draw_mode - - boxes = new() - boxes.name = "storage" - boxes.master = src - boxes.icon_state = "block" - boxes.screen_loc = "7,7 to 10,8" - boxes.layer = HUD_LAYER - boxes.plane = HUD_PLANE - - storage_start = new /atom/movable/screen/storage() - storage_start.name = "storage" - storage_start.master = src - storage_start.icon_state = "storage_start" - storage_start.screen_loc = "7,7 to 10,8" - storage_start.layer = HUD_LAYER - storage_start.plane = HUD_PLANE - storage_continue = new /atom/movable/screen/storage() - storage_continue.name = "storage" - storage_continue.master = src - storage_continue.icon_state = "storage_continue" - storage_continue.screen_loc = "7,7 to 10,8" - storage_continue.layer = HUD_LAYER - storage_continue.plane = HUD_PLANE - storage_end = new /atom/movable/screen/storage() - storage_end.name = "storage" - storage_end.master = src - storage_end.icon_state = "storage_end" - storage_end.screen_loc = "7,7 to 10,8" - storage_end.layer = HUD_LAYER - storage_end.plane = HUD_PLANE - - stored_start = new /obj() //we just need these to hold the icon - stored_start.icon_state = "stored_start" - stored_start.layer = HUD_LAYER - stored_start.plane = HUD_PLANE - stored_continue = new /obj() - stored_continue.icon_state = "stored_continue" - stored_continue.layer = HUD_LAYER - stored_continue.plane = HUD_PLANE - stored_end = new /obj() - stored_end.icon_state = "stored_end" - stored_end.layer = HUD_LAYER - stored_end.plane = HUD_PLANE - - closer = new() - closer.master = src - -/obj/item/storage/Destroy() - for(var/atom/movable/I in contents) - qdel(I) - for(var/mob/M in content_watchers) - hide_from(M) - if(boxes) - QDEL_NULL(boxes) - if(storage_start) - QDEL_NULL(storage_start) - if(storage_continue) - QDEL_NULL(storage_continue) - if(storage_end) - QDEL_NULL(storage_end) - if(stored_start) - QDEL_NULL(stored_start) - if(stored_continue) - QDEL_NULL(stored_continue) - if(stored_end) - QDEL_NULL(stored_end) - if(closer) - QDEL_NULL(closer) - . = ..() - -/obj/item/storage/emp_act(severity) - if(!isliving(loc)) - for(var/obj/O in contents) - O.emp_act(severity) - ..() - -///BubbleWrap - A box can be folded up to make card -/obj/item/storage/attack_self(mob/user) - . = ..() - //Clicking on itself will empty it, if it has the verb to do that. - - if(allow_quick_empty) - quick_empty() - return - - //Otherwise we'll try to fold it. - if ( length(contents) ) - return - - if ( !ispath(foldable) ) - return - - // Close any open UI windows first - for(var/mob/M in content_watchers) - close(M) - - // Now make the cardboard - to_chat(user, span_notice("You break down the [src].")) - new foldable(get_turf(src)) - qdel(src) -//BubbleWrap END - -///Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area). Returns -1 if the atom was not found on container. -/atom/proc/storage_depth(atom/container) - var/depth = 0 - var/atom/cur_atom = src - - while (cur_atom && !(cur_atom in container.contents)) - if (isarea(cur_atom)) - return -1 - if (istype(cur_atom.loc, /obj/item/storage)) - depth++ - cur_atom = cur_atom.loc - - if (!cur_atom) - return -1 //inside something with a null loc. - - return depth - -///Like storage depth, but returns the depth to the nearest turf. Returns -1 if no top level turf (a loc was null somewhere, or a non-turf atom's loc was an area somehow). -/atom/proc/storage_depth_turf() - var/depth = 0 - var/atom/cur_atom = src - - while (cur_atom && !isturf(cur_atom)) - if (isarea(cur_atom)) - return -1 - if (istype(cur_atom.loc, /obj/item/storage)) - depth++ - cur_atom = cur_atom.loc - - if (!cur_atom) - return -1 //inside something with a null loc. + create_storage(storage_type) - return depth - - -/obj/item/storage/handle_atom_del(atom/movable/AM) - if(istype(AM, /obj/item)) - remove_from_storage(AM) - - -/obj/item/storage/max_stack_merging(obj/item/stack/S) - if(is_type_in_typecache(S, bypass_w_limit)) - return FALSE //No need for limits if we can bypass it. - var/weight_diff = initial(S.w_class) - max_w_class - if(weight_diff <= 0) - return FALSE //Nor if the limit is not higher than what we have. - var/max_amt = round((S.max_amount / STACK_WEIGHT_STEPS) * (STACK_WEIGHT_STEPS - weight_diff)) //How much we can fill per weight step times the valid steps. - if(max_amt <= 0 || max_amt > S.max_amount) - stack_trace("[src] tried to max_stack_merging([S]) with [max_w_class] max_w_class and [weight_diff] weight_diff, resulting in [max_amt] max_amt.") - return max_amt - - -/obj/item/storage/recalculate_storage_space() - var/list/lookers = can_see_content() - if(!length(lookers)) - return - orient2hud() - for(var/X in lookers) - var/mob/M = X //There is no need to typecast here, really, but for clarity. - show_to(M) - - -/obj/item/storage/contents_explosion(severity) - for(var/i in contents) - var/atom/A = i - A.ex_act(severity) - - -/obj/item/storage/AltClick(mob/user) - . = ..() - attempt_draw_object(user) - -/obj/item/storage/AltRightClick(mob/user) - if(Adjacent(user)) - open(user) - -/obj/item/storage/attack_hand_alternate(mob/living/user) - . = ..() - if(.) - return - attempt_draw_object(user) - -/obj/item/storage/CtrlClick(mob/living/user) - . = ..() - attempt_draw_object(user, TRUE) - -/** - * Attempts to get the first possible object from this container - * - * Arguments: - * * mob/living/user - The mob attempting to draw from this container - * * start_from_left - If true we draw the leftmost object instead of the rightmost. FALSE by default. - */ -/obj/item/storage/proc/attempt_draw_object(mob/living/user, start_from_left = FALSE) - if(!ishuman(user) || user.incapacitated() || isturf(loc)) - return - if(!length(contents)) - return balloon_alert(user, "Empty") - if(user.get_active_held_item()) - return //User is already holding something. - var/obj/item/drawn_item = start_from_left ? contents[1] : contents[length(contents)] - drawn_item.attack_hand(user) + PopulateContents() +///Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT /obj/item/storage/proc/PopulateContents() return /obj/item/storage/update_icon_state() . = ..() - if(!sprite_slots) + if(!storage_datum?.sprite_slots) icon_state = initial(icon_state) return var/total_weight = 0 - if(!storage_slots) + if(!storage_datum.storage_slots) for(var/obj/item/i in contents) total_weight += i.w_class - total_weight = ROUND_UP(total_weight / max_storage_space * sprite_slots) + total_weight = ROUND_UP(total_weight / storage_datum.max_storage_space * storage_datum.sprite_slots) else - total_weight = ROUND_UP(length(contents) / storage_slots * sprite_slots) + total_weight = ROUND_UP(length(contents) / storage_datum.storage_slots * storage_datum.sprite_slots) if(!total_weight) icon_state = initial(icon_state) + "_e" return - if(sprite_slots > total_weight) + if(storage_datum.sprite_slots > total_weight) icon_state = initial(icon_state) + "_" + num2text(total_weight) else icon_state = initial(icon_state) diff --git a/code/game/objects/items/storage/surgical_tray.dm b/code/game/objects/items/storage/surgical_tray.dm index 665eef40a6b14..6d6cbfa0e7f88 100644 --- a/code/game/objects/items/storage/surgical_tray.dm +++ b/code/game/objects/items/storage/surgical_tray.dm @@ -4,15 +4,9 @@ icon_state = "surgical_tray" atom_flags = CONDUCT w_class = WEIGHT_CLASS_BULKY //Should not fit in backpacks - storage_slots = 12 - max_storage_space = 24 - can_hold = list( - /obj/item/tool/surgery, - /obj/item/stack/nanopaste, - ) + storage_type = /datum/storage/surgical_tray -/obj/item/storage/surgical_tray/Initialize(mapload, ...) - . = ..() +/obj/item/storage/surgical_tray/PopulateContents() new /obj/item/tool/surgery/scalpel/manager(src) new /obj/item/tool/surgery/scalpel(src) new /obj/item/tool/surgery/hemostat(src) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index acab4433f9d26..2ed1106c61cd3 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -21,9 +21,7 @@ icon_state = "red" item_state = "toolbox_red" - -/obj/item/storage/toolbox/emergency/Initialize(mapload, ...) - . = ..() +/obj/item/storage/toolbox/emergency/PopulateContents() new /obj/item/tool/crowbar/red(src) new /obj/item/tool/extinguisher/mini(src) if(prob(50)) @@ -31,15 +29,12 @@ else new /obj/item/explosive/grenade/flare/civilian(src) - /obj/item/storage/toolbox/mechanical name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" - -/obj/item/storage/toolbox/mechanical/Initialize(mapload, ...) - . = ..() +/obj/item/storage/toolbox/mechanical/PopulateContents() new /obj/item/tool/screwdriver(src) new /obj/item/tool/wrench(src) new /obj/item/tool/weldingtool(src) @@ -47,15 +42,12 @@ new /obj/item/tool/analyzer(src) new /obj/item/tool/wirecutters(src) - /obj/item/storage/toolbox/electrical name = "electrical toolbox" icon_state = "yellow" item_state = "toolbox_yellow" - -/obj/item/storage/toolbox/electrical/Initialize(mapload, ...) - . = ..() +/obj/item/storage/toolbox/electrical/PopulateContents() var/color = pick("red", "yellow", "green", "blue", "pink", "orange", "cyan", "white") new /obj/item/tool/screwdriver(src) new /obj/item/tool/wirecutters(src) @@ -68,16 +60,13 @@ else new /obj/item/stack/cable_coil(src, 30, color) - /obj/item/storage/toolbox/syndicate name = "suspicious looking toolbox" icon_state = "syndicate" item_state = "toolbox_syndi" force = 7 - -/obj/item/storage/toolbox/syndicate/Initialize(mapload, ...) - . = ..() +/obj/item/storage/toolbox/syndicate/PopulateContents() var/color = pick("red", "yellow", "green", "blue", "pink", "orange", "cyan", "white") new /obj/item/tool/screwdriver(src) new /obj/item/tool/wrench(src) diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index ddc70217409b6..215b55eaf495d 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -1,50 +1,11 @@ /obj/item/storage/wallet name = "wallet" desc = "It can hold a few small and personal things." - storage_slots = 10 icon_state = "wallet" w_class = WEIGHT_CLASS_TINY - can_hold = list( - /obj/item/spacecash, - /obj/item/card, - /obj/item/clothing/mask/cigarette, - /obj/item/flashlight/pen, - /obj/item/seeds, - /obj/item/stack/medical, - /obj/item/toy/crayon, - /obj/item/coin, - /obj/item/toy/dice, - /obj/item/disk, - /obj/item/implanter, - /obj/item/tool/lighter, - /obj/item/tool/match, - /obj/item/paper, - /obj/item/tool/pen, - /obj/item/photo, - /obj/item/reagent_containers/dropper, - /obj/item/tool/screwdriver, - /obj/item/tool/stamp, - ) equip_slot_flags = ITEM_SLOT_ID - var/obj/item/card/id/front_id = null - - -/obj/item/storage/wallet/remove_from_storage(obj/item/W, atom/new_location, mob/user) - . = ..() - if(.) - if(W == front_id) - front_id = null - name = initial(name) - update_icon() - -/obj/item/storage/wallet/handle_item_insertion(obj/item/W as obj, prevent_warning = 0) - . = ..(W, prevent_warning) - if(.) - if(!front_id && istype(W, /obj/item/card/id)) - front_id = W - name = "[name] ([front_id])" - update_icon() + storage_type = /datum/storage/wallet /obj/item/storage/wallet/update_icon_state() . = ..() @@ -64,7 +25,6 @@ return icon_state = "wallet" - /obj/item/storage/wallet/random/Initialize(mapload) . = ..() var/item1_type = pick( /obj/item/spacecash/c10,/obj/item/spacecash/c100,/obj/item/spacecash/c20,/obj/item/spacecash/c200,/obj/item/spacecash/c50, /obj/item/spacecash/c500) diff --git a/code/game/objects/items/tools/flame_tools.dm b/code/game/objects/items/tools/flame_tools.dm index 34b0d38584e0b..a650768181aa4 100644 --- a/code/game/objects/items/tools/flame_tools.dm +++ b/code/game/objects/items/tools/flame_tools.dm @@ -354,28 +354,32 @@ CIGARETTE PACKETS ARE IN FANCY.DM die() return ..() -/obj/item/clothing/mask/cigarette/attack(atom/target, mob/living/user) - if(!lit) - if(isturf(target)) - var/turf/T = target - if(locate(/obj/flamer_fire) in T.contents) - light(span_notice("[user] lights [user.p_their()] [src] with the burning ground.")) - return - - if(isliving(target) && user.a_intent == INTENT_HELP) - var/mob/living/M = target - if(M.on_fire) - if(user == M) - light(span_notice("[user] lights [user.p_their()] [src] from their own burning body, that's crazy!")) - else - light(span_notice("[user] lights [user.p_their()] [src] from the burning body of [M], that's stone cold.")) - return - - if(istype(target, /obj/machinery/light)) - var/obj/machinery/light/fixture = target - if(fixture.is_broken()) - light(span_notice("[user] lights [user.p_their()] [src] from the broken light.")) - return +/obj/item/clothing/mask/cigarette/attack_obj(obj/target_object, mob/living/user) + if(lit) + return ..() + if(!istype(target_object, /obj/machinery/light)) + return ..() + var/obj/machinery/light/fixture = target_object + if(fixture.status != LIGHT_BROKEN || !fixture.has_power()) + return ..() + light(span_notice("[user] lights [user.p_their()] [src] from the broken light.")) + return TRUE + +/obj/item/clothing/mask/cigarette/attack(mob/living/living_target, mob/living/user) + if(lit) + return ..() + if(!living_target.on_fire) + return ..() + if(user == living_target) + light(span_notice("[user] lights [user.p_their()] [src] from their own burning body, that's crazy!")) + else + light(span_notice("[user] lights [user.p_their()] [src] from the burning body of [living_target], that's stone cold.")) + return TRUE + +/obj/item/clothing/mask/cigarette/attack_turf(turf/target_turf, mob/living/user) + if(!lit && locate(/obj/flamer_fire) in target_turf.contents) + light(span_notice("[user] lights [user.p_their()] [src] with the burning ground.")) + return TRUE return ..() /obj/item/clothing/mask/cigarette/proc/die() diff --git a/code/game/objects/items/tools/misc_tools.dm b/code/game/objects/items/tools/misc_tools.dm index aefa38d499ad3..fd678a98cfee4 100644 --- a/code/game/objects/items/tools/misc_tools.dm +++ b/code/game/objects/items/tools/misc_tools.dm @@ -46,6 +46,8 @@ var/str = reject_bad_text(stripped_input(user, "Label text?", "Set label","", MAX_NAME_LEN)) if(!str) to_chat(user, span_notice("Invalid label.")) + on = !on + icon_state = "labeler[on]" return label = str to_chat(user, span_notice("You set the label text to '[str]'.")) diff --git a/code/game/objects/items/tools/shovel_tools.dm b/code/game/objects/items/tools/shovel_tools.dm index e9dddcdfa60c3..7c3e60db40abe 100644 --- a/code/game/objects/items/tools/shovel_tools.dm +++ b/code/game/objects/items/tools/shovel_tools.dm @@ -55,57 +55,58 @@ new /obj/item/stack/snow(T, dirt_amt) dirt_amt = 0 - update_icon() + update_appearance(UPDATE_ICON) /obj/item/tool/shovel/afterattack(atom/target, mob/user, proximity) if(!proximity) return if(folded) return - if(user.do_actions) return + if(!isturf(target)) + return + + var/turf/target_turf = target + + if(dirt_amt) + balloon_alert(user, "Dumps the [dirt_type == DIRT_TYPE_SNOW ? "snow" : "dirt"]") + playsound(user.loc, "rustle", 30, 1, 6) + if(dirt_type == DIRT_TYPE_SNOW) + var/obj/item/stack/snow/S = locate() in target_turf + if(S && (S.amount + dirt_amt < S.max_amount)) + S.amount += dirt_amt + else + new /obj/item/stack/snow(target_turf, dirt_amt) + dirt_amt = 0 + update_appearance(UPDATE_ICON) + return - if(isturf(target)) - if(!dirt_amt) - var/turf/T = target - var/turfdirt = T.get_dirt_type() - if(turfdirt) - if(turfdirt == DIRT_TYPE_SNOW) - var/turf/open/floor/plating/ground/snow/ST = T - if(!ST.slayer) - return - balloon_alert(user, "Starts digging") - playsound(user.loc, 'sound/effects/thud.ogg', 40, 1, 6) - if(!do_after(user, shovelspeed, NONE, T, BUSY_ICON_BUILD)) - return - var/transf_amt = dirt_amt_per_dig - if(turfdirt == DIRT_TYPE_SNOW) - var/turf/open/floor/plating/ground/snow/ST = T - if(!ST.slayer) - return - ST.slayer -= 1 - ST.update_appearance() - ST.update_sides() - balloon_alert(user, "Digs up snow") - else - balloon_alert(user, "Digs up dirt") - dirt_amt = transf_amt - dirt_type = turfdirt - update_icon() - - else - var/turf/T = target - balloon_alert(user, "Dumps the [dirt_type == DIRT_TYPE_SNOW ? "snow" : "dirt"]") - playsound(user.loc, "rustle", 30, 1, 6) - if(dirt_type == DIRT_TYPE_SNOW) - var/obj/item/stack/snow/S = locate() in T - if(S && (S.amount + dirt_amt < S.max_amount)) - S.amount += dirt_amt - else - new /obj/item/stack/snow(T, dirt_amt) - dirt_amt = 0 - update_icon() + var/turfdirt = target_turf.get_dirt_type() + if(!turfdirt) + return + if(turfdirt == DIRT_TYPE_SNOW) + var/turf/open/floor/plating/ground/snow/ST = target_turf + if(!ST.slayer) + return + balloon_alert(user, "Starts digging") + playsound(user.loc, 'sound/effects/thud.ogg', 40, 1, 6) + if(!do_after(user, shovelspeed, NONE, target_turf, BUSY_ICON_BUILD)) + return + var/transf_amt = dirt_amt_per_dig + if(turfdirt == DIRT_TYPE_SNOW) + var/turf/open/floor/plating/ground/snow/ST = target_turf + if(!ST.slayer) + return + ST.slayer -= 1 + ST.update_appearance() + ST.update_sides() + balloon_alert(user, "Digs up snow") + else + balloon_alert(user, "Digs up dirt") + dirt_amt = transf_amt + dirt_type = turfdirt + update_appearance(UPDATE_ICON) /obj/item/tool/shovel/spade name = "spade" diff --git a/code/game/objects/machinery/computer/medical.dm b/code/game/objects/machinery/computer/medical.dm index 397558576d355..e768963ed9208 100644 --- a/code/game/objects/machinery/computer/medical.dm +++ b/code/game/objects/machinery/computer/medical.dm @@ -116,8 +116,6 @@ dat += "
None detected
" else dat += "
[bdat]" - - else else dat += "{Log In}" @@ -364,8 +362,6 @@ for(var/datum/data/record/E in GLOB.datacore.medical) if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) M = E - else - //Foreach continue //goto(2540) src.active1 = R src.active2 = M src.screen = 4 @@ -417,16 +413,12 @@ for(var/datum/data/record/R in GLOB.datacore.medical) if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]) || t1 == lowertext(R.fields["b_dna"]))) src.active2 = R - else - //Foreach continue //goto(3229) if (!( src.active2 )) src.temp = "Could not locate record [t1]." else for(var/datum/data/record/E in GLOB.datacore.general) if ((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) src.active1 = E - else - //Foreach continue //goto(3334) src.screen = 4 if (href_list["print_p"]) diff --git a/code/game/objects/machinery/computer/security.dm b/code/game/objects/machinery/computer/security.dm index f26895f72f50f..2fd1fca5f50d5 100644 --- a/code/game/objects/machinery/computer/security.dm +++ b/code/game/objects/machinery/computer/security.dm @@ -195,7 +195,6 @@ dat += "[crimstat]" dat += "
" dat += "
Return to index." - else else dat += "{Log In}" @@ -529,7 +528,6 @@ What a mess.*/ if ((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) GLOB.datacore.medical -= R qdel(R) - else qdel(active1) active1 = null if (active2) diff --git a/code/game/objects/machinery/computer/skills.dm b/code/game/objects/machinery/computer/skills.dm index 3e22e802f9d60..e332290d57ff5 100644 --- a/code/game/objects/machinery/computer/skills.dm +++ b/code/game/objects/machinery/computer/skills.dm @@ -129,7 +129,6 @@ dat += "[crimstat]" dat += "
" dat += "
Return to index." - else else dat += "{Log In}" diff --git a/code/game/objects/machinery/door_control.dm b/code/game/objects/machinery/door_control.dm index d7e5c252a920f..b6fdf9e52a9c1 100644 --- a/code/game/objects/machinery/door_control.dm +++ b/code/game/objects/machinery/door_control.dm @@ -240,10 +240,15 @@ id = "hangar_lockdown" /obj/machinery/door_control/mainship/mech - name = "Mech Shutter" + name = "\improper Mech Shutters" id = "mech_shutters" req_one_access = list(ACCESS_MARINE_MECH) +/obj/machinery/door_control/mainship/vehicle + name = "\improper Vehicle Bay Shutters" + id = "vehicle_shutters" + req_one_access = list(ACCESS_MARINE_ARMORED, ACCESS_MARINE_MECH) + /obj/machinery/door_control/mainship/tcomms name = "Telecommunications Entrance" id = "tcomms" diff --git a/code/game/objects/machinery/doors/poddoor.dm b/code/game/objects/machinery/doors/poddoor.dm index ecf8149440e58..2e47fb7505db5 100644 --- a/code/game/objects/machinery/doors/poddoor.dm +++ b/code/game/objects/machinery/doors/poddoor.dm @@ -225,6 +225,11 @@ id = "mech_shutters" resistance_flags = PLASMACUTTER_IMMUNE +/obj/machinery/door/poddoor/mainship/vehicle + name = "\improper Vehicle Bay Shutters" + id = "vehicle_shutters" + resistance_flags = PLASMACUTTER_IMMUNE + /obj/machinery/door/poddoor/mainship/umbilical name = "Umbilical Airlock" resistance_flags = RESIST_ALL diff --git a/code/game/objects/machinery/fire_alarm.dm b/code/game/objects/machinery/fire_alarm.dm index 4c95dc3aed05b..cbaeb8451e446 100644 --- a/code/game/objects/machinery/fire_alarm.dm +++ b/code/game/objects/machinery/fire_alarm.dm @@ -89,9 +89,10 @@ FIRE ALARM if(A.alarm_state_flags & ALARM_WARNING_FIRE) . += mutable_appearance(icon, "fire_o1") -/obj/machinery/firealarm/fire_act(temperature, volume) - if(detecting && (temperature > T0C+200)) - alarm() // added check of detector status here +/obj/machinery/firealarm/fire_act(burn_level) + if(!detecting) + return + alarm() /obj/machinery/firealarm/emp_act(severity) if(prob(50/severity)) diff --git a/code/game/objects/machinery/gear.dm b/code/game/objects/machinery/gear.dm index 1e54c02653447..9ddf140565a68 100644 --- a/code/game/objects/machinery/gear.dm +++ b/code/game/objects/machinery/gear.dm @@ -30,3 +30,6 @@ /obj/machinery/elevator_strut/bottom icon_state = "strut_bottom" + +/obj/machinery/gear/vehicle // todo do for suppply as well instead of varediting + id = "vehicle_elevator_gear" diff --git a/code/game/objects/machinery/hologram.dm b/code/game/objects/machinery/hologram.dm index 878e61ba616de..b9e8e5b4aabf8 100644 --- a/code/game/objects/machinery/hologram.dm +++ b/code/game/objects/machinery/hologram.dm @@ -246,7 +246,6 @@ updateUsrDialog() -//do not allow AIs to answer calls or people will use it to meta the AI sattelite /obj/machinery/holopad/attack_ai(mob/living/silicon/ai/user) if (!istype(user)) return diff --git a/code/game/objects/machinery/kitchen/smartfridge.dm b/code/game/objects/machinery/kitchen/smartfridge.dm index f3e1d3b43c143..f7c466603aed3 100644 --- a/code/game/objects/machinery/kitchen/smartfridge.dm +++ b/code/game/objects/machinery/kitchen/smartfridge.dm @@ -101,7 +101,7 @@ to_chat(user, span_notice("\The [src] is full.")) return TRUE - P.remove_from_storage(G, src, user) + P.storage_datum.remove_from_storage(G, src, user) item_quants[strip_improper(G.name)]++ plants_loaded++ @@ -155,6 +155,7 @@ /obj/machinery/smartfridge/handle_atom_del(atom/A) // Update the UIs in case something inside gets deleted + . = ..() SStgui.update_uis(src) /obj/machinery/smartfridge/ui_act(action, list/params) diff --git a/code/game/objects/machinery/mortar.dm b/code/game/objects/machinery/mortar.dm index a27ecbb35a9fe..32858dc0a8ab6 100644 --- a/code/game/objects/machinery/mortar.dm +++ b/code/game/objects/machinery/mortar.dm @@ -643,7 +643,7 @@ span_notice("You load \a [mortar_shell.name] into [src].")) chamber_items += mortar_shell - rocket_box.remove_from_storage(mortar_shell,null,user) + rocket_box.storage_datum.remove_from_storage(mortar_shell,null,user) rocketsloaded++ user.balloon_alert(user, "Right click to fire") @@ -890,7 +890,10 @@ /obj/item/storage/box/mlrs_rockets name = "\improper TA-40L rocket crate" desc = "A large case containing rockets in a compressed setting for the TA-40L MLRS. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." - storage_slots = 16 + +/obj/item/storage/box/mlrs_rockets/Initialize(mapload) + . = ..() + storage_datum.storage_slots = 16 /obj/item/storage/box/mlrs_rockets/PopulateContents() new /obj/item/mortal_shell/rocket/mlrs(src) @@ -912,6 +915,11 @@ /obj/item/storage/box/mlrs_rockets/gas name = "\improper TA-40L X-50 rocket crate" + desc = "A large case containing rockets in a compressed setting for the TA-40L MLRS. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." + +/obj/item/storage/box/mlrs_rockets/gas/Initialize(mapload) + . = ..() + storage_datum.storage_slots = 16 /obj/item/storage/box/mlrs_rockets/gas/PopulateContents() new /obj/item/mortal_shell/rocket/mlrs/gas(src) @@ -954,6 +962,11 @@ /obj/item/storage/box/mlrs_rockets/incendiary name = "\improper TA-40L incendiary rocket crate" + desc = "A large case containing rockets in a compressed setting for the TA-40L MLRS. Drag this sprite into you to open it up!\nNOTE: You cannot put items back inside this case." + +/obj/item/storage/box/mlrs_rockets/incendiary/Initialize(mapload) + . = ..() + storage_datum.storage_slots = 16 /obj/item/storage/box/mlrs_rockets/incendiary/PopulateContents() new /obj/item/mortal_shell/rocket/mlrs/incendiary(src) @@ -973,7 +986,6 @@ new /obj/item/mortal_shell/rocket/mlrs/incendiary(src) new /obj/item/mortal_shell/rocket/mlrs/incendiary(src) - #undef TALLY_MORTAR #undef TALLY_HOWITZER #undef TALLY_ROCKET_ARTY diff --git a/code/game/objects/machinery/overwatch.dm b/code/game/objects/machinery/overwatch.dm index 0647bf5fee292..38907a46214b2 100644 --- a/code/game/objects/machinery/overwatch.dm +++ b/code/game/objects/machinery/overwatch.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_EMPTY(active_cas_targets) ///Overrides the minimap action minimap and marker flags var/map_flags = MINIMAP_FLAG_MARINE ///Ref of the lase that's had an OB warning mark placed on the minimap - var/obj/effect/overlay/temp/laser_target/OB/marked_lase + var/obj/effect/overlay/temp/laser_target/ob/marked_lase ///Static list of CIC radial options for the camera when clicking on a marine var/static/list/human_radial_options = list( MESSAGE_SINGLE = image(icon = 'icons/mob/radial.dmi', icon_state = "cic_message_single"), @@ -482,14 +482,13 @@ GLOBAL_LIST_EMPTY(active_cas_targets) if("back") state = OW_MAIN if("use_cam") - selected_target = locate(href_list["selected_target"]) + var/atom/cam_target = locate(href_list["cam_target"]) + if(!cam_target) + return + var/turf/cam_target_turf = get_turf(cam_target) + if(!cam_target_turf) + return if(!isAI(operator)) - var/atom/cam_target = locate(href_list["cam_target"]) - if(!cam_target) - return - var/turf/cam_target_turf = get_turf(cam_target) - if(!cam_target_turf) - return open_prompt(operator) eyeobj.setLoc(cam_target_turf) if(isliving(cam_target)) @@ -497,6 +496,14 @@ GLOBAL_LIST_EMPTY(active_cas_targets) track(L) else to_chat(operator, "[icon2html(src, operator)] [span_notice("Jumping to the latest available location of [cam_target].")]") + else + // If we are an AI + to_chat(operator, "[icon2html(src, operator)] [span_notice("Jumping to the latest available location of [cam_target].")]") + var/turf/T = get_turf(cam_target) + if(T) + var/mob/living/silicon/ai/recipientai = operator + recipientai.eyeobj.setLoc(T) + // operator.eyeobj.setLoc(get_turf(src)) updateUsrDialog() @@ -640,7 +647,7 @@ GLOBAL_LIST_EMPTY(active_cas_targets) addtimer(CALLBACK(src, PROC_REF(do_fire_bombard), T, operator), 3.1 SECONDS) ///Lets anyone using an overwatch console know that an OB has just been lased -/obj/machinery/computer/camera_advanced/overwatch/proc/alert_lase(datum/source, obj/effect/overlay/temp/laser_target/OB/incoming_laser) +/obj/machinery/computer/camera_advanced/overwatch/proc/alert_lase(datum/source, obj/effect/overlay/temp/laser_target/ob/incoming_laser) SIGNAL_HANDLER if(!operator) return @@ -787,14 +794,14 @@ GLOBAL_LIST_EMPTY(active_cas_targets) ///Quick-select radial menu for Overwatch /obj/machinery/computer/camera_advanced/overwatch/proc/do_radial(datum/source, atom/A, params) var/mob/living/carbon/human/human_target - var/obj/effect/overlay/temp/laser_target/OB/laser_target + var/obj/effect/overlay/temp/laser_target/ob/laser_target var/turf/turf_target var/choice if(ishuman(A)) human_target = A choice = show_radial_menu(source, human_target, human_radial_options, null, 48, null, FALSE, TRUE) - else if(istype(A, /obj/effect/overlay/temp/laser_target/OB)) + else if(istype(A, /obj/effect/overlay/temp/laser_target/ob)) laser_target = A choice = show_radial_menu(source, laser_target, bombardment_radial_options, null, 48, null, FALSE, TRUE) else diff --git a/code/game/objects/machinery/portable_reagent_tank.dm b/code/game/objects/machinery/portable_reagent_tank.dm index 3da26bacf4607..43be43ebfc242 100644 --- a/code/game/objects/machinery/portable_reagent_tank.dm +++ b/code/game/objects/machinery/portable_reagent_tank.dm @@ -64,7 +64,7 @@ if(user.a_intent == INTENT_GRAB) return drink_from_nozzle(user) var/obj/item/storage/internal_bag = get_internal_item() - internal_bag?.open(user) + internal_bag?.storage_datum.open(user) /obj/machinery/deployable/reagent_tank/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, armor_type = MELEE, effects = TRUE, armor_penetration = xeno_attacker.xeno_caste.melee_ap, isrightclick = FALSE) if(xeno_attacker.a_intent != INTENT_HARM) @@ -111,8 +111,8 @@ /obj/machinery/deployable/reagent_tank/disassemble(mob/user) . = ..() var/obj/item/storage/internal_bag = get_internal_item() - for(var/mob/watching in internal_bag?.content_watchers) - internal_bag.close(watching) + for(var/mob/watching in internal_bag?.storage_datum.content_watchers) + internal_bag.storage_datum.close(watching) playsound(src, 'sound/machines/elevator_openclose.ogg', 50) /obj/item/storage/reagent_tank @@ -124,11 +124,8 @@ item_state = "reagent_dispenser" equip_slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_HUGE - max_w_class = WEIGHT_CLASS_SMALL //Beaker size - storage_slots = null - max_storage_space = 5 - can_hold = list(/obj/item/reagent_containers, /obj/item/reagent_scanner) max_integrity = 200 + storage_type = /datum/storage/reagent_tank ///Properties relating to reagents for this container; whether you can check if reagents are visible, if it is refillable, etc. var/container_flags = TRANSPARENT ///Maximum units of reagents this container can hold @@ -149,7 +146,7 @@ /obj/item/storage/reagent_tank/update_overlays() . = ..() - if(reagents.total_volume) + if(reagents?.total_volume) var/image/filling = image(icon, src, "[icon_state]") var/percent = round((reagents.total_volume/max_volume) * 100) switch(percent) @@ -173,28 +170,12 @@ /obj/item/storage/reagent_tank/attack_hand(mob/living/user) if(CHECK_BITFIELD(item_flags, IS_DEPLOYED)) - return open(user) - return ..() - -/obj/item/storage/reagent_tank/open(mob/user) - if(CHECK_BITFIELD(item_flags, IS_DEPLOYED)) - return ..() - -/obj/item/storage/reagent_tank/attempt_draw_object(mob/living/user) - if(!CHECK_BITFIELD(item_flags, IS_DEPLOYED)) - balloon_alert(user, "Not deployed") - return FALSE + return storage_datum.open(user) return ..() /obj/item/storage/reagent_tank/do_quick_equip(mob/user) balloon_alert(user, "Not deployed") -/obj/item/storage/reagent_tank/can_be_inserted(obj/item/W, warning) - if(!CHECK_BITFIELD(item_flags, IS_DEPLOYED)) - balloon_alert(usr, "Not deployed") - return FALSE - return ..() - //Preset tanks so you can have these ready for a round and not need to drain the chem master's energy /obj/item/storage/reagent_tank/bicaridine name = "portable Bicaridine dispenser" diff --git a/code/game/objects/machinery/sleeper.dm b/code/game/objects/machinery/sleeper.dm index de45bf9a75985..2b98a746fbfe2 100644 --- a/code/game/objects/machinery/sleeper.dm +++ b/code/game/objects/machinery/sleeper.dm @@ -408,7 +408,6 @@ t1 = "Unconscious" if(2) t1 = "*dead*" - else var/health_ratio = occupant.health * 100 / occupant.maxHealth to_chat(user, "[health_ratio > 50 ? " " : " "]\t Health %: [health_ratio] ([t1])") to_chat(user, "[occupant.bodytemperature > 50 ? "" : ""]\t -Core Temperature: [occupant.bodytemperature-T0C]°C ([occupant.bodytemperature*1.8-459.67]°F)
") diff --git a/code/game/objects/machinery/vending/marine_vending.dm b/code/game/objects/machinery/vending/marine_vending.dm index 74d99b0155ca3..c542455a995ac 100644 --- a/code/game/objects/machinery/vending/marine_vending.dm +++ b/code/game/objects/machinery/vending/marine_vending.dm @@ -1116,6 +1116,7 @@ /obj/item/armor_module/armor/chest/marine/assault/eod = -1, /obj/item/armor_module/armor/chest/marine/helljumper = -1, /obj/item/armor_module/armor/chest/marine/ranger = -1, + /obj/item/armor_module/armor/chest/marine/mjolnir = -1, ), "Jaeger Mk.I armpiece" = list( /obj/item/armor_module/armor/arms/marine/skirmisher = -1, @@ -1127,6 +1128,7 @@ /obj/item/armor_module/armor/arms/marine/eod = -1, /obj/item/armor_module/armor/arms/marine/helljumper = -1, /obj/item/armor_module/armor/arms/marine/ranger = -1, + /obj/item/armor_module/armor/arms/marine/mjolnir = -1, ), "Jaeger Mk.I legpiece" = list( /obj/item/armor_module/armor/legs/marine/skirmisher = -1, @@ -1139,6 +1141,7 @@ /obj/item/armor_module/armor/legs/marine/scout = -1, /obj/item/armor_module/armor/legs/marine/helljumper = -1, /obj/item/armor_module/armor/legs/marine/ranger = -1, + /obj/item/armor_module/armor/legs/marine/mjolnir = -1, ), "Jaeger Mk.I helmets" = list( /obj/item/clothing/head/modular/marine/old/skirmisher = -1, @@ -1149,6 +1152,8 @@ /obj/item/clothing/head/modular/marine/old/eva/skull = -1, /obj/item/clothing/head/modular/marine/old/assault = -1, /obj/item/clothing/head/modular/marine/old/eod = -1, + /obj/item/clothing/head/modular/marine/old/mjolnir = -1, + /obj/item/clothing/head/modular/marine/mjolnir_open = -1, ), "Hardsuits" = list( /obj/item/clothing/suit/modular/hardsuit_exoskeleton = -1, diff --git a/code/game/objects/machinery/vending/new_marine_vendors.dm b/code/game/objects/machinery/vending/new_marine_vendors.dm index fb77cd042ee8e..8744032a37ea1 100644 --- a/code/game/objects/machinery/vending/new_marine_vendors.dm +++ b/code/game/objects/machinery/vending/new_marine_vendors.dm @@ -762,8 +762,6 @@ /obj/item/stack/sheet/plasteel/medium_stack, /obj/item/stack/sheet/metal/large_stack, /obj/item/tool/weldingtool/hugetank, - /obj/item/lightreplacer, - /obj/item/healthanalyzer, /obj/item/tool/handheld_charger, /obj/item/defibrillator, /obj/item/medevac_beacon, @@ -772,6 +770,8 @@ /obj/item/bodybag/cryobag, /obj/item/reagent_containers/hypospray/advanced/oxycodone, /obj/item/tweezers, + /obj/item/cell/high, + /obj/item/circuitboard/apc, ) /obj/effect/vendor_bundle/white_dress diff --git a/code/game/objects/machinery/vending/vending.dm b/code/game/objects/machinery/vending/vending.dm index b4da4d8807750..e1b52279c2a99 100644 --- a/code/game/objects/machinery/vending/vending.dm +++ b/code/game/objects/machinery/vending/vending.dm @@ -699,8 +699,8 @@ */ /datum/vending_product/proc/attempt_restock(obj/item/item_to_stock, mob/user, show_feedback = TRUE) //More accurate comparison between absolute paths. - if(isstorage(item_to_stock)) //Nice try, specialists/engis - var/obj/item/storage/storage_to_stock = item_to_stock + if(item_to_stock.storage_datum) //Nice try, specialists/engis + var/datum/storage/storage_to_stock = item_to_stock.storage_datum if(!(storage_to_stock.storage_flags & BYPASS_VENDOR_CHECK)) //If your storage has this flag, it can be restocked user?.balloon_alert(user, "Can't restock containers!") return FALSE @@ -744,9 +744,11 @@ item_to_stock.unwield(user) user.temporarilyRemoveItemFromInventory(item_to_stock) - else if(istype(item_to_stock.loc, /obj/item/storage)) //inside a storage item + // Hey I don't think this code does anything, it looks like it wants to restock things that are inside a storage? + // Probably should be running a loop over every item inside the storage, but whatever that's not for this PR + else if(item_to_stock.item_flags & IN_STORAGE) //inside a storage item var/obj/item/storage/S = item_to_stock.loc - S.remove_from_storage(item_to_stock, user.loc, user) + S.storage_datum.remove_from_storage(item_to_stock, user.loc, user) qdel(item_to_stock) diff --git a/code/game/objects/machinery/vending/vending_types.dm b/code/game/objects/machinery/vending/vending_types.dm index 1c3197b03efc5..f97bc6f56054d 100644 --- a/code/game/objects/machinery/vending/vending_types.dm +++ b/code/game/objects/machinery/vending/vending_types.dm @@ -155,14 +155,14 @@ req_access = list(ACCESS_MARINE_MEDBAY, ACCESS_MARINE_CHEMISTRY) //only doctors and researchers can access these products = list( "Pill Bottle" = list( - /obj/item/storage/pill_bottle/bicaridine = 15, - /obj/item/storage/pill_bottle/kelotane = 15, - /obj/item/storage/pill_bottle/tramadol = 15, - /obj/item/storage/pill_bottle/tricordrazine = 15, - /obj/item/storage/pill_bottle/dylovene = 15, - /obj/item/storage/pill_bottle/inaprovaline = 15, - /obj/item/storage/pill_bottle/isotonic = 15, - /obj/item/storage/pill_bottle/paracetamol = 6, + /obj/item/storage/pill_bottle/bicaridine = -1, + /obj/item/storage/pill_bottle/kelotane = -1, + /obj/item/storage/pill_bottle/tramadol = -1, + /obj/item/storage/pill_bottle/tricordrazine = -1, + /obj/item/storage/pill_bottle/dylovene = -1, + /obj/item/storage/pill_bottle/inaprovaline = -1, + /obj/item/storage/pill_bottle/isotonic = -1, + /obj/item/storage/pill_bottle/paracetamol = -1, /obj/item/storage/pill_bottle/dexalin = 6, /obj/item/storage/pill_bottle/spaceacillin = 6, /obj/item/storage/pill_bottle/alkysine = 6, @@ -181,14 +181,14 @@ /obj/item/reagent_containers/hypospray/advanced/dylovene = 5, ), "Reagent Bottle" = list( - /obj/item/reagent_containers/glass/bottle/bicaridine = 6, - /obj/item/reagent_containers/glass/bottle/kelotane = 6, - /obj/item/reagent_containers/glass/bottle/tramadol = 6, - /obj/item/reagent_containers/glass/bottle/tricordrazine = 6, - /obj/item/reagent_containers/glass/bottle/dylovene = 6, - /obj/item/reagent_containers/glass/bottle/inaprovaline = 6, - /obj/item/reagent_containers/glass/bottle/paracetamol = 6, - /obj/item/reagent_containers/glass/bottle/isotonic = 6, + /obj/item/reagent_containers/glass/bottle/bicaridine = -1, + /obj/item/reagent_containers/glass/bottle/kelotane = -1, + /obj/item/reagent_containers/glass/bottle/tramadol = -1, + /obj/item/reagent_containers/glass/bottle/tricordrazine = -1, + /obj/item/reagent_containers/glass/bottle/dylovene = -1, + /obj/item/reagent_containers/glass/bottle/inaprovaline = -1, + /obj/item/reagent_containers/glass/bottle/paracetamol = -1, + /obj/item/reagent_containers/glass/bottle/isotonic = -1, /obj/item/reagent_containers/glass/bottle/dexalin = 6, /obj/item/reagent_containers/glass/bottle/spaceacillin = 6, /obj/item/reagent_containers/glass/bottle/oxycodone = 6, diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index afc2bec01882a..e2b764f825737 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -72,7 +72,7 @@ return FALSE if(QDELETED(src)) return FALSE - fire_act() + fire_act(LAVA_BURN_LEVEL) return TRUE /obj/hitby(atom/movable/AM, speed = 5) diff --git a/code/game/objects/structures/campaign_structures/orbital_beacons.dm b/code/game/objects/structures/campaign_structures/orbital_beacons.dm index 4a2808959010f..168e45fefbbf5 100644 --- a/code/game/objects/structures/campaign_structures/orbital_beacons.dm +++ b/code/game/objects/structures/campaign_structures/orbital_beacons.dm @@ -62,6 +62,12 @@ user.balloon_alert(user, "Cannot deploy here") return FALSE +/obj/item/campaign_beacon/bunker_buster/bluespace + name = "bluespace beacon" + desc = "A bulky device that is used to provide precision guidance for powerful bluespace weapon systems." + icon_state = "bluespace" + deployable_type = /obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace + ///Delay between beacon timer finishing and the actual explosion #define CAMPAIGN_OB_BEACON_IMPACT_DELAY 10 SECONDS @@ -107,12 +113,38 @@ /obj/structure/campaign_objective/destruction_objective/bunker_buster/proc/beacon_effect() UnregisterSignal(SSdcs, COMSIG_GLOB_CAMPAIGN_OB_BEACON_TRIGGERED) SEND_SIGNAL(SSdcs, COMSIG_GLOB_CAMPAIGN_OB_BEACON_TRIGGERED, src, CAMPAIGN_OB_BEACON_IMPACT_DELAY) + play_trigger_sound() + +///Alerts player on the z-level that the beacon has triggered successfully +/obj/structure/campaign_objective/destruction_objective/bunker_buster/proc/play_trigger_sound() for(var/mob/mob AS in GLOB.player_list) - if(mob.z != z) + var/turf/mob_turf = get_turf(mob) + if(mob_turf.z != z) continue var/play_sound = 'sound/effects/OB_warning_announce_novoiceover.ogg' if(isobserver(mob) || mob.faction == faction) play_sound = 'sound/effects/OB_warning_announce.ogg' mob.playsound_local(loc, play_sound, 125, falloff = 10, distance_multiplier = 0.2) +/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace + name = "deployed bluespace beacon" + desc = "An ominous blue beacon, used to provide precision guidance for powerful bluespace weapon systems." + icon_state = "bluespace_deployed" + faction = FACTION_SOM + +/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace/beacon_effect() + . = ..() + addtimer(CALLBACK(src, PROC_REF(do_visual_effect)), CAMPAIGN_OB_BEACON_IMPACT_DELAY - 1.5 SECONDS) + +/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace/play_trigger_sound() + for(var/mob/mob AS in GLOB.player_list) + var/turf/mob_turf = get_turf(mob) + if(mob_turf.z != z) + continue + mob.playsound_local(loc, 'sound/magic/lightning_chargeup.ogg', 125, falloff = 10, distance_multiplier = 0.2) + +///Visual effect right before the blast +/obj/structure/campaign_objective/destruction_objective/bunker_buster/bluespace/proc/do_visual_effect() + new /obj/effect/temp_visual/teleporter_array(get_turf(src)) + #undef CAMPAIGN_OB_BEACON_IMPACT_DELAY diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index d049562dba58c..ae30d24cac890 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -413,6 +413,7 @@ /obj/structure/closet/contents_explosion(severity) + . = ..() for(var/i in contents) var/atom/movable/closet_contents = i closet_contents.ex_act(severity) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm index f7b7567e94388..8077602557687 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm @@ -21,7 +21,7 @@ new /obj/item/clothing/gloves/white(src) new /obj/item/clothing/under/marine/whites(src) new /obj/item/clothing/head/white_dress(src) - new /obj/item/storage/backpack/marine/satchel/captain_cloak(src) + new /obj/item/storage/backpack/marine/satchel/captain_cloak_red(src) new /obj/item/storage/holster/belt/mateba/officer/full(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 07777c888d31f..cbe3dba1287fe 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -10,7 +10,6 @@ req_access = list(ACCESS_MARINE_MEDBAY) /obj/structure/closet/secure_closet/medical1/PopulateContents() - . = ..() new /obj/item/storage/box/autoinjectors(src) new /obj/item/storage/box/syringes(src) new /obj/item/reagent_containers/dropper(src) @@ -40,7 +39,6 @@ req_access = list(ACCESS_MARINE_MEDBAY) /obj/structure/closet/secure_closet/medical2/PopulateContents() - . = ..() new /obj/item/tank/anesthetic(src) new /obj/item/tank/anesthetic(src) new /obj/item/tank/anesthetic(src) @@ -59,7 +57,6 @@ icon_off = "secure_closed_medical_white" /obj/structure/closet/secure_closet/medical3/PopulateContents() - . = ..() new /obj/item/clothing/glasses/hud/health(src) new /obj/item/storage/belt/lifesaver/full(src) new /obj/item/storage/backpack/marine/satchel(src) @@ -87,7 +84,6 @@ icon_off = "cmosecureoff" /obj/structure/closet/secure_closet/CMO/PopulateContents() - . = ..() new /obj/item/clothing/suit/radiation(src) new /obj/item/clothing/head/radiation(src) new /obj/item/clothing/shoes/white(src) @@ -110,7 +106,6 @@ req_access = list(ACCESS_MARINE_MEDBAY) /obj/structure/closet/secure_closet/animal/PopulateContents() - . = ..() new /obj/item/assembly/signaler(src) new /obj/item/electropack(src) new /obj/item/electropack(src) @@ -130,7 +125,6 @@ req_access = list(ACCESS_MARINE_CHEMISTRY) /obj/structure/closet/secure_closet/chemical/PopulateContents() - . = ..() new /obj/item/storage/box/pillbottles(src) new /obj/item/storage/box/pillbottles(src) 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 e91d658cfd0a5..8efb9352eb8ea 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -10,7 +10,6 @@ /obj/structure/closet/secure_closet/captains/PopulateContents() - . = ..() if(prob(50)) new /obj/item/storage/backpack/captain(src) else @@ -42,7 +41,6 @@ /obj/structure/closet/secure_closet/hop/PopulateContents() - . = ..() new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/head/helmet(src) @@ -63,7 +61,6 @@ /obj/structure/closet/secure_closet/hop2/PopulateContents() - . = ..() new /obj/item/clothing/under/rank/head_of_personnel(src) new /obj/item/clothing/under/dress/dress_hop(src) new /obj/item/clothing/under/dress/dress_hr(src) @@ -90,7 +87,6 @@ icon_off = "hossecureoff" /obj/structure/closet/secure_closet/hos/PopulateContents() - . = ..() if(prob(50)) new /obj/item/storage/backpack/security(src) else @@ -126,7 +122,6 @@ /obj/structure/closet/secure_closet/warden/PopulateContents() - . = ..() if(prob(50)) new /obj/item/storage/backpack/security(src) else @@ -159,7 +154,6 @@ /obj/structure/closet/secure_closet/marshal/PopulateContents() - . = ..() new /obj/item/clothing/suit/storage/CMB(src) new /obj/item/clothing/under/CM_uniform(src) new /obj/item/storage/backpack/security(src) @@ -179,7 +173,6 @@ /obj/structure/closet/secure_closet/security/PopulateContents() - . = ..() if(prob(50)) new /obj/item/storage/backpack/security(src) else @@ -200,23 +193,19 @@ /obj/structure/closet/secure_closet/security/cargo/PopulateContents() - . = ..() new /obj/item/clothing/tie/armband/cargo(src) /obj/structure/closet/secure_closet/security/engine/PopulateContents() - . = ..() new /obj/item/clothing/tie/armband/engine(src) new /obj/item/encryptionkey/engi(src) /obj/structure/closet/secure_closet/security/science/PopulateContents() - . = ..() new /obj/item/clothing/tie/armband/science(src) /obj/structure/closet/secure_closet/security/med/PopulateContents() - . = ..() new /obj/item/clothing/tie/armband/medgreen(src) new /obj/item/encryptionkey/med(src) @@ -253,7 +242,6 @@ /obj/structure/closet/secure_closet/detective/PopulateContents() - . = ..() new /obj/item/clothing/under/rank/det(src) new /obj/item/clothing/under/rank/det/grey(src) new /obj/item/clothing/suit/storage/det_suit(src) @@ -291,7 +279,6 @@ /obj/structure/closet/secure_closet/injection/PopulateContents() - . = ..() new /obj/item/reagent_containers/syringe/ld50_syringe/choral(src) new /obj/item/reagent_containers/syringe/ld50_syringe/choral(src) @@ -315,7 +302,6 @@ /obj/structure/closet/secure_closet/brig/PopulateContents() - . = ..() new /obj/item/clothing/under/rank/prisoner(src) new /obj/item/clothing/shoes/orange(src) new /obj/item/radio/headset(src) @@ -331,7 +317,6 @@ /obj/structure/closet/secure_closet/courtroom/PopulateContents() - . = ..() new /obj/item/clothing/shoes/brown(src) new /obj/item/paper/Court (src) new /obj/item/paper/Court (src) 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 461263a1d6fc0..c5e74cb7325ed 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -38,8 +38,6 @@ new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/mask/gas(src) new /obj/item/storage/firstaid/o2(src) - if ("nothing") - // doot // teehee - Ah, tg coders... if ("delete") @@ -98,7 +96,6 @@ /obj/structure/closet/toolcloset/PopulateContents() - . = ..() new /obj/item/clothing/suit/storage/hazardvest(src) new /obj/item/clothing/suit/storage/hazardvest/lime(src) new /obj/item/clothing/suit/storage/hazardvest/blue(src) diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index 475bc15bb8bb1..c436556603cfc 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -139,10 +139,8 @@ icon = 'icons/obj/smooth_objects/brokenfence.dmi' return ..() -/obj/structure/fence/fire_act(exposed_temperature, exposed_volume) - if(exposed_temperature > T0C + 800) - take_damage(round(exposed_volume / 100), BURN, FIRE) - return ..() +/obj/structure/fence/fire_act(burn_level) + take_damage(burn_level, BURN, FIRE) /obj/structure/fence/broken chance_to_break = 100 diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 9b8e5742d3f2e..c55a7ba16459d 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -25,13 +25,8 @@ if(prob(10)) qdel(src) - -/obj/structure/flora/flamer_fire_act(burnlevel) - take_damage(burnlevel, BURN, FIRE) - -/obj/structure/flora/fire_act() - take_damage(25, BURN, FIRE) - +/obj/structure/flora/fire_act(burn_level) + take_damage(burn_level, BURN, FIRE) //TREES @@ -103,8 +98,8 @@ qdel(src) -/obj/structure/flora/tree/flamer_fire_act(burnlevel) - take_damage(burnlevel/6, BURN, FIRE) +/obj/structure/flora/tree/fire_act(burn_level) + take_damage(burn_level * 0.3, BURN, FIRE) /obj/structure/flora/tree/update_overlays() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index dbe4709fcffc5..84ee54d5da60e 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -129,10 +129,10 @@ to_chat(user, span_notice("You place the [WD] on [src].")) WD.update_icon() -/obj/structure/grille/fire_act(exposed_temperature, exposed_volume) - if(obj_integrity > integrity_failure && exposed_temperature > T0C + 1500) - take_damage(1, BURN, FIRE) - return ..() +/obj/structure/grille/fire_act(burn_level) + if(obj_integrity <= integrity_failure) + return + take_damage(1, BURN, FIRE) diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 123739e74ddb5..470f294259437 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -209,10 +209,10 @@ desc = "Contains inflatable walls and doors." icon_state = "inf_box" item_state = "syringe_kit" - max_storage_space = 21 /obj/item/storage/briefcase/inflatable/Initialize(mapload, ...) . = ..() + storage_datum.max_storage_space = 21 for(var/i in 1 to 3) new /obj/item/inflatable/door(src) for(var/i in 1 to 4) diff --git a/code/game/objects/structures/mine_structures.dm b/code/game/objects/structures/mine_structures.dm index b8c020005e916..86c586df2b837 100644 --- a/code/game/objects/structures/mine_structures.dm +++ b/code/game/objects/structures/mine_structures.dm @@ -16,11 +16,8 @@ coverage = 85 density = TRUE -/obj/structure/mine_structure/wooden/flamer_fire_act(burnlevel) - take_damage(burnlevel, BURN, FIRE) - -/obj/structure/mine_structure/wooden/fire_act() - take_damage(25, BURN, FIRE) +/obj/structure/mine_structure/wooden/fire_act(burn_level) + take_damage(burn_level, BURN, FIRE) /obj/structure/mine_structure/wooden/support_wall name = "wooden support" diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 6c994d67dbfc7..7d94e395e0470 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -170,8 +170,8 @@ return ..() -/obj/structure/mineral_door/transparent/phoron/fire_act(exposed_temperature, exposed_volume) - if(exposed_temperature > 300) +/obj/structure/mineral_door/transparent/phoron/fire_act(burn_level) + if(burn_level > 30) var/turf/T = get_turf(src) T.ignite(25, 25) diff --git a/code/game/objects/structures/orbital_cannon.dm b/code/game/objects/structures/orbital_cannon.dm index 700f11968df1b..8d575554bc587 100644 --- a/code/game/objects/structures/orbital_cannon.dm +++ b/code/game/objects/structures/orbital_cannon.dm @@ -42,6 +42,9 @@ if(tray) tray.linked_ob = null tray = null + if(GLOB.marine_main_ship.orbital_cannon == src) + GLOB.marine_main_ship.orbital_cannon = null + QDEL_NULL(tray) return ..() /obj/structure/orbital_cannon/update_icon_state() @@ -217,13 +220,16 @@ GLOB.round_statistics.obs_fired++ SSblackbox.record_feedback("tally", "round_statistics", 1, "obs_fired") priority_announce( - message = "Get out of danger close!

Warhead type: [tray.warhead.warhead_kind].
[fuel_warning]
Estimated location of impact: [get_area(T)].", + message = "Evacuate the impact zone immediately!

Warhead type: [tray.warhead.warhead_kind].
[fuel_warning]
Estimated location of impact: [get_area(T)].", title = "Orbital bombardment launch command detected!", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/effects/OB_warning_announce.ogg', channel_override = SSsounds.random_available_channel(), // This way, we can't have it be cut off by other sounds. color_override = "red" ) + var/list/receivers = (GLOB.alive_human_list + GLOB.ai_list + GLOB.observer_list) + for(var/mob/living/screentext_receiver AS in receivers) + screentext_receiver.play_screen_text("ORBITAL STRIKE IMMINENT
TYPE: [uppertext(tray.warhead.warhead_kind)]", /atom/movable/screen/text/screen_text/command_order) playsound(target, 'sound/effects/OB_warning_announce_novoiceover.ogg', 125, FALSE, 30, 10) //VOX-less version for xenomorphs var/impact_time = 10 SECONDS + (WARHEAD_FLY_TIME * (GLOB.current_orbit/3)) @@ -553,6 +559,12 @@ rail_gun_ammo.max_ammo_count = 8000 //200 uses or 15 full minutes of firing. rail_gun_ammo.ammo_count = 8000 +/obj/structure/ship_rail_gun/Destroy() + if(GLOB.marine_main_ship.rail_gun == src) + GLOB.marine_main_ship.rail_gun = null + QDEL_NULL(rail_gun_ammo) + return ..() + /obj/structure/ship_rail_gun/proc/fire_rail_gun(turf/T, mob/user, ignore_cooldown = FALSE, ai_operation = FALSE) if(cannon_busy && !ignore_cooldown) return diff --git a/code/game/objects/structures/patrol_points.dm b/code/game/objects/structures/patrol_points.dm index 07dc1a7df3d33..48c5cddef10ad 100644 --- a/code/game/objects/structures/patrol_points.dm +++ b/code/game/objects/structures/patrol_points.dm @@ -1,12 +1,8 @@ -#define PATROL_POINT_RAPPEL_EFFECT "patrol_point_rappel_effect" -#define RAPPEL_DURATION 0.6 SECONDS -#define RAPPEL_HEIGHT 128 - /obj/structure/patrol_point name = "Patrol start point" desc = "A one way ticket to the combat zone. Shift click to deploy when inside a mech." - icon = 'icons/effects/effects.dmi' - icon_state = "patrolpoint" + icon = 'icons/effects/campaign_effects.dmi' + icon_state = "patrol_point_1" anchored = TRUE resistance_flags = RESIST_ALL layer = LADDER_LAYER @@ -44,7 +40,7 @@ if(user.incapacitated() || !Adjacent(user) || user.lying_angle || user.buckled || user.anchored) return - activate_point(user) + activate_point(user, user) /obj/structure/patrol_point/mech_shift_click(obj/vehicle/sealed/mecha/mecha_clicker, mob/living/user) if(!Adjacent(user)) @@ -52,8 +48,8 @@ activate_point(user, mecha_clicker) ///Handles sending someone and/or something through the patrol_point -/obj/structure/patrol_point/proc/activate_point(mob/living/user, obj/obj_mover) - if(!user && !obj_mover) +/obj/structure/patrol_point/proc/activate_point(mob/living/user, atom/movable/thing_to_move) + if(!thing_to_move) return if(!linked_point) create_link() @@ -63,91 +59,20 @@ to_chat(user, span_warning("This doesn't seem to go anywhere.")) return - if(obj_mover) - obj_mover.forceMove(linked_point.loc) - else if(user) //this is mainly configured under the assumption that we only have both an obj and a user if its a manned mech going through - user.visible_message(span_notice("[user] goes through the [src]."), - span_notice("You walk through the [src].")) - user.trainteleport(linked_point.loc) - add_spawn_protection(user) - if(!obj_mover) - new /atom/movable/effect/rappel_rope(linked_point.loc) //mechs don't need a rope - - var/atom/movable/mover = obj_mover ? obj_mover : user - - mover.add_filter(PATROL_POINT_RAPPEL_EFFECT, 2, drop_shadow_filter(y = -RAPPEL_HEIGHT, color = COLOR_TRANSPARENT_SHADOW, size = 4)) - var/shadow_filter = mover.get_filter(PATROL_POINT_RAPPEL_EFFECT) - - var/current_layer = mover.layer - mover.pixel_y += RAPPEL_HEIGHT - mover.layer = FLY_LAYER - - animate(mover, pixel_y = mover.pixel_y - RAPPEL_HEIGHT, time = RAPPEL_DURATION) - animate(shadow_filter, y = 0, size = 0.9, time = RAPPEL_DURATION, flags = ANIMATION_PARALLEL) - - addtimer(CALLBACK(src, PROC_REF(end_rappel), user, mover, current_layer), RAPPEL_DURATION) - - if(!user) - return - user.playsound_local(user, "sound/effects/CIC_order.ogg", 10, 1) - var/message - if(issensorcapturegamemode(SSticker.mode)) - switch(user.faction) - if(FACTION_TERRAGOV) - message = "Reactivate all sensor towers, good luck team." - if(FACTION_SOM) - message = "Prevent reactivation of the sensor towers, glory to Mars!" - else if(iscombatpatrolgamemode(SSticker.mode)) - switch(user.faction) - if(FACTION_TERRAGOV) - message = "Eliminate all hostile forces in the ao, good luck team." - if(FACTION_SOM) - message = "Eliminate the TerraGov imperialists in the ao, glory to Mars!" - else if(iscampaigngamemode(SSticker.mode)) - switch(user.faction) - if(FACTION_TERRAGOV) - message = "Stick together and achieve those objectives marines. Good luck." - if(FACTION_SOM) - message = "Remember your training marines, show those Terrans the strength of the SOM, glory to Mars!" - - if(!message) - return - - switch(user.faction) - if(FACTION_TERRAGOV) - user.play_screen_text("OVERWATCH
" + message, /atom/movable/screen/text/screen_text/picture/potrait) - if(FACTION_SOM) - user.play_screen_text("OVERWATCH
" + message, /atom/movable/screen/text/screen_text/picture/potrait/som_over) - else - user.play_screen_text("UNKNOWN
" + message, /atom/movable/screen/text/screen_text/picture/potrait/unknown) + thing_to_move.visible_message(span_notice("[thing_to_move] goes through the [src]."), user ? span_notice("You go through the [src].") : null) + linked_point.do_deployment(thing_to_move, user) /obj/structure/patrol_point/attack_ghost(mob/dead/observer/user) . = ..() - if(. || !linked_point) + if(.) return - + if(!linked_point) + create_link() + if(!linked_point) + to_chat(user, span_warning("This doesn't seem to go anywhere.")) + return user.forceMove(linked_point.loc) -///Temporarily applies godmode to prevent spawn camping -/obj/structure/patrol_point/proc/add_spawn_protection(mob/living/user) - user.ImmobilizeNoChain(RAPPEL_DURATION) //looks weird if they can move while rappeling - user.status_flags |= GODMODE - addtimer(CALLBACK(src, PROC_REF(remove_spawn_protection), user), 10 SECONDS) - -///Ends the rappel effects -/obj/structure/patrol_point/proc/end_rappel(mob/living/user, atom/movable/mover, original_layer) - mover.remove_filter(PATROL_POINT_RAPPEL_EFFECT) - mover.layer = original_layer - SEND_SIGNAL(mover, COMSIG_MOVABLE_PATROL_DEPLOYED, TRUE, 1.5, 2) - if(ismecha(mover)) - new /obj/effect/temp_visual/rappel_dust(linked_point.loc, 3) - playsound(linked_point.loc, 'sound/effects/behemoth/behemoth_stomp.ogg', 40, TRUE) - shake_camera(user, 0.2 SECONDS, 0.5) - -///Removes spawn protection godmode -/obj/structure/patrol_point/proc/remove_spawn_protection(mob/user) - user.status_flags &= ~GODMODE - /obj/structure/patrol_point/tgmc_11 id = "TGMC_11" @@ -162,15 +87,19 @@ /obj/structure/patrol_point/tgmc_21 id = "TGMC_21" + icon_state = "patrol_point_2" /obj/structure/patrol_point/tgmc_22 id = "TGMC_22" + icon_state = "patrol_point_2" /obj/structure/patrol_point/tgmc_23 id = "TGMC_23" + icon_state = "patrol_point_2" /obj/structure/patrol_point/tgmc_24 id = "TGMC_24" + icon_state = "patrol_point_2" /obj/structure/patrol_point/som_11 id = "SOM_11" @@ -186,36 +115,16 @@ /obj/structure/patrol_point/som_21 id = "SOM_21" + icon_state = "patrol_point_2" /obj/structure/patrol_point/som_22 id = "SOM_22" + icon_state = "patrol_point_2" /obj/structure/patrol_point/som_23 id = "SOM_23" + icon_state = "patrol_point_2" /obj/structure/patrol_point/som_24 id = "SOM_24" - -/atom/movable/effect/rappel_rope - name = "rope" - icon = 'icons/Marine/mainship_props.dmi' - icon_state = "rope" - layer = ABOVE_MOB_LAYER - anchored = TRUE - resistance_flags = RESIST_ALL - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - -/atom/movable/effect/rappel_rope/Initialize(mapload) - . = ..() - playsound(loc, 'sound/effects/rappel.ogg', 50, TRUE, falloff = 2) - playsound(loc, 'sound/effects/tadpolehovering.ogg', 100, TRUE, falloff = 2.5) - balloon_alert_to_viewers("You see a dropship fly overhead and begin dropping ropes!") - ropeanimation() - -/atom/movable/effect/rappel_rope/proc/ropeanimation() - flick("rope_deploy", src) - addtimer(CALLBACK(src, PROC_REF(ropeanimation_stop)), 2 SECONDS) - -/atom/movable/effect/rappel_rope/proc/ropeanimation_stop() - flick("rope_up", src) - QDEL_IN(src, 5) + icon_state = "patrol_point_2" diff --git a/code/game/objects/structures/reagent_dispensers.dm b/code/game/objects/structures/reagent_dispensers.dm index 426cd7101abc9..be940f9fbd80a 100644 --- a/code/game/objects/structures/reagent_dispensers.dm +++ b/code/game/objects/structures/reagent_dispensers.dm @@ -193,10 +193,8 @@ explosion(loc, light_impact_range = 2, flame_range = 2) qdel(src) -/obj/structure/reagent_dispensers/fueltank/fire_act(temperature, volume) - if(temperature > T0C+500) - explode() - return ..() +/obj/structure/reagent_dispensers/fueltank/fire_act(burn_level) + explode() /obj/structure/reagent_dispensers/fueltank/Moved(atom/old_loc, movement_dir, forced, list/old_locs) . = ..() @@ -218,9 +216,6 @@ playsound(src, 'sound/effects/glob.ogg', 25, 1) -/obj/structure/reagent_dispensers/fueltank/flamer_fire_act(burnlevel) - explode() - /obj/structure/reagent_dispensers/fueltank/barrel name = "red barrel" desc = "A red fuel barrel" diff --git a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm index ac9a808eceadd..57dc7853b9fd4 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm @@ -128,12 +128,8 @@ if(LAZYLEN(buckled_mobs)) . += image("icon_state" = "nest_overlay", "layer" = LYING_MOB_LAYER + 0.1) - -/obj/structure/bed/nest/flamer_fire_act(burnlevel) - take_damage(burnlevel * 2, BURN, FIRE) - -/obj/structure/bed/nest/fire_act() - take_damage(50, BURN, FIRE) +/obj/structure/bed/nest/fire_act(burn_level) + take_damage(burn_level * 2, BURN, FIRE) #undef NEST_RESIST_TIME #undef NEST_UNBUCKLED_COOLDOWN diff --git a/code/game/objects/structures/teleporter_array.dm b/code/game/objects/structures/teleporter_array.dm index 83ce9c49d4547..6382ff050b783 100644 --- a/code/game/objects/structures/teleporter_array.dm +++ b/code/game/objects/structures/teleporter_array.dm @@ -12,7 +12,7 @@ ///The faction this belongs to var/faction = FACTION_SOM ///How many times this can be used - var/charges = 1 + var/charges = 3 ///The target turf for teleportation var/turf/target_turf ///The Z-level that the teleporter can teleport to diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 56c2ed4a5bccc..693b825eb4caa 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -265,10 +265,9 @@ else icon_state = "[basestate][junction]" -/obj/structure/window/fire_act(exposed_temperature, exposed_volume) - if(exposed_temperature > T0C + 800) - take_damage(round(exposed_volume / 100), BURN, FIRE) - return ..() +/obj/structure/window/fire_act(burn_level) + if(burn_level > 25) + take_damage(burn_level, BURN, FIRE) /obj/structure/window/GetExplosionBlock(explosion_dir) return (!explosion_dir || ISDIAGONALDIR(dir) || dir & explosion_dir || REVERSE_DIR(dir) & explosion_dir) ? real_explosion_block : 0 @@ -283,10 +282,9 @@ explosion_block = EXPLOSION_BLOCK_PROC real_explosion_block = 2 -/obj/structure/window/phoronbasic/fire_act(exposed_temperature, exposed_volume) - if(exposed_temperature > T0C + 32000) - take_damage(round(exposed_volume / 1000), BURN, FIRE) - return ..() +/obj/structure/window/phoronbasic/fire_act(burn_level) + if(burn_level > 30) + take_damage(burn_level * 0.5, BURN, FIRE) /obj/structure/window/phoronreinforced name = "reinforced phoron window" @@ -299,7 +297,7 @@ explosion_block = EXPLOSION_BLOCK_PROC real_explosion_block = 4 -/obj/structure/window/phoronreinforced/fire_act(exposed_temperature, exposed_volume) +/obj/structure/window/phoronreinforced/fire_act(burn_level) return /obj/structure/window/reinforced diff --git a/code/game/objects/structures/xeno.dm b/code/game/objects/structures/xeno.dm index 8e5b4ea492e3a..c6c3db6cb3e7e 100644 --- a/code/game/objects/structures/xeno.dm +++ b/code/game/objects/structures/xeno.dm @@ -36,8 +36,8 @@ if(obj_flags & CAN_BE_HIT) return I.attack_obj(src, user) -/obj/alien/flamer_fire_act(burnlevel) - take_damage(burnlevel * 2, BURN, FIRE) +/obj/alien/fire_act(burn_level) + take_damage(burn_level * 2, BURN, FIRE) /obj/alien/ex_act(severity) switch(severity) @@ -210,8 +210,8 @@ src.balloon_alert(xeno_attacker, "Destroyed") qdel(src) -/obj/structure/mineral_door/resin/flamer_fire_act(burnlevel) - take_damage(burnlevel * 2, BURN, FIRE) +/obj/structure/mineral_door/resin/fire_act(burn_level) + take_damage(burn_level * 2, BURN, FIRE) /obj/structure/mineral_door/resin/ex_act(severity) switch(severity) @@ -224,9 +224,6 @@ if(EXPLODE_WEAK) take_damage(30, BRUTE, BOMB) -/turf/closed/wall/resin/fire_act() - take_damage(50, BURN, FIRE) - /obj/structure/mineral_door/resin/try_toggle_state(atom/user) if(isxeno(user)) return ..() diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index 7de0eab0d664e..851f39b2e3ec6 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -15,9 +15,6 @@ resistance_flags = RESIST_ALL layer = WINDOW_LAYER -/obj/structure/shuttle/window/fire_act(exposed_temperature, exposed_volume) - return - /obj/structure/shuttle/engine name = "engine" density = TRUE diff --git a/code/game/turfs/floor.dm b/code/game/turfs/floor.dm index cd693155d7e98..218f6fcf7ef77 100644 --- a/code/game/turfs/floor.dm +++ b/code/game/turfs/floor.dm @@ -42,7 +42,7 @@ break_tile() return ..() -/turf/open/floor/fire_act(exposed_temperature, exposed_volume) +/turf/open/floor/fire_act(burn_level) if(hull_floor) return if(!burnt && prob(5)) diff --git a/code/game/turfs/floor_ground.dm b/code/game/turfs/floor_ground.dm index c9deeab594a35..6b86fdb23f762 100644 --- a/code/game/turfs/floor_ground.dm +++ b/code/game/turfs/floor_ground.dm @@ -11,7 +11,7 @@ /turf/open/floor/plating/ground/burnt_states() return icon_state -/turf/open/floor/plating/ground/fire_act(exposed_temperature, exposed_volume) +/turf/open/floor/plating/ground/fire_act(burn_level) return /turf/open/floor/plating/ground/dirt @@ -257,6 +257,9 @@ . = ..() setDir(pick(NORTH,SOUTH,EAST,WEST,NORTHEAST,NORTHWEST,SOUTHEAST,SOUTHWEST)) +/turf/open/floor/plating/ground/ice/get_dirt_type() + return NO_DIRT + // Colony tiles /turf/open/floor/plating/ground/concrete name = "concrete" @@ -267,6 +270,9 @@ shoefootstep = FOOTSTEP_CONCRETE minimap_color = MINIMAP_AREA_COLONY +/turf/open/floor/plating/ground/concrete/get_dirt_type() + return NO_DIRT + /turf/open/floor/plating/ground/concrete/lines icon_state = "concrete_lines" @@ -307,6 +313,9 @@ mediumxenofootstep = FOOTSTEP_CONCRETE smoothing_groups = list(SMOOTH_GROUP_ASPHALT) +/turf/open/floor/plating/ground/desertdam/asphalt/get_dirt_type() + return NO_DIRT + /turf/open/floor/plating/ground/desertdam/asphalt/cement name = "concrete" icon_state = "cement5" @@ -360,7 +369,7 @@ /turf/open/floor/plating/ground/desertdam/asphalt/autosmooth/alt icon = 'icons/turf/floors/asphalt-sunbleached.dmi' - base_icon_state = "aasphalt-sunbleached" + base_icon_state = "asphalt-sunbleached" //CAVE /turf/open/floor/plating/ground/desertdam/cave diff --git a/code/game/turfs/floor_types.dm b/code/game/turfs/floor_types.dm index 6561f58d72292..a81f9b4a77ae6 100644 --- a/code/game/turfs/floor_types.dm +++ b/code/game/turfs/floor_types.dm @@ -178,7 +178,7 @@ /turf/open/floor/mainship/empty/is_weedable() return FALSE -/turf/open/floor/mainship/empty/fire_act(exposed_temperature, exposed_volume) +/turf/open/floor/mainship/empty/fire_act(burn_level) return /turf/open/floor/mainship/empty/attackby(obj/item/I, mob/user, params) //This should fix everything else. No cables, etc diff --git a/code/game/turfs/open_ground.dm b/code/game/turfs/open_ground.dm index 8854410f7e02a..a1a542b5ad1b9 100644 --- a/code/game/turfs/open_ground.dm +++ b/code/game/turfs/open_ground.dm @@ -17,7 +17,7 @@ . = ..() baseturfs = type -/turf/open/ground/fire_act(exposed_temperature, exposed_volume) +/turf/open/ground/fire_act(burn_level) return /turf/open/ground/attackby() //This should fix everything else. No cables, etc diff --git a/code/game/turfs/plating.dm b/code/game/turfs/plating.dm index e9ed80d4f2311..40ccbdeadd5aa 100644 --- a/code/game/turfs/plating.dm +++ b/code/game/turfs/plating.dm @@ -17,7 +17,7 @@ /turf/open/floor/plating/make_plating() return //we don't dig past plating -/turf/open/floor/plating/fire_act(exposed_temperature, exposed_volume) +/turf/open/floor/plating/fire_act(burn_level) if(hull_floor) return if(!burnt && prob(5)) diff --git a/code/game/turfs/snow.dm b/code/game/turfs/snow.dm index 93bedb8102e9d..ecbcf5b72c8b6 100644 --- a/code/game/turfs/snow.dm +++ b/code/game/turfs/snow.dm @@ -19,9 +19,18 @@ update_appearance() update_sides() -// Melting snow -/turf/open/floor/plating/ground/snow/fire_act(exposed_temperature, exposed_volume) - slayer = 0 +/turf/open/floor/plating/ground/snow/fire_act(burn_level) + if(!slayer || !burn_level) + return + + switch(burn_level) + if(1 to 10) + slayer = max(0, slayer - 1) + if(11 to 24) + slayer = max(0, slayer - 2) + if(25 to INFINITY) + slayer = 0 + update_appearance() update_sides() @@ -163,22 +172,6 @@ update_sides() return ..() -//Fire act; fire now melts snow as it should; fire beats ice -/turf/open/floor/plating/ground/snow/flamer_fire_act(burnlevel) - if(!slayer || !burnlevel) //Don't bother if there's no snow to melt or if there's no burn stacks - return - - switch(burnlevel) - if(1 to 10) - slayer = max(0, slayer - 1) - if(11 to 24) - slayer = max(0, slayer - 2) - if(25 to INFINITY) - slayer = 0 - - update_appearance() - update_sides() - /turf/open/floor/plating/ground/snow/proc/acidspray_act() SIGNAL_HANDLER diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 53a4b2c60deac..354cf1ca6b216 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -154,7 +154,7 @@ if(COMPONENT_MOVABLE_PREBUMP_STOPPED) return FALSE //No need for a bump, already procesed. if(COMPONENT_MOVABLE_PREBUMP_PLOWED) - //Continue. We've plowed through the obstacle. + EMPTY_BLOCK_GUARD else mover.Bump(src) return FALSE @@ -885,6 +885,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( /turf/contents_explosion(severity) + . = ..() for(var/thing in contents) var/atom/movable/thing_in_turf = thing if(thing_in_turf.resistance_flags & INDESTRUCTIBLE) diff --git a/code/game/turfs/walls/r_wall.dm b/code/game/turfs/walls/r_wall.dm index 1b5d130234e2a..3c19c26ee52ae 100644 --- a/code/game/turfs/walls/r_wall.dm +++ b/code/game/turfs/walls/r_wall.dm @@ -84,7 +84,7 @@ /turf/closed/wall/r_wall/prison_unmeltable/ex_act(severity) //Should make it indestructable return -/turf/closed/wall/r_wall/prison_unmeltable/fire_act(exposed_temperature, exposed_volume) +/turf/closed/wall/r_wall/prison_unmeltable/fire_act(burn_level) return /turf/closed/wall/r_wall/prison_unmeltable/attackby(obj/item/I, mob/user, params) //This should fix everything else. No cables, etc diff --git a/code/game/turfs/walls/resin.dm b/code/game/turfs/walls/resin.dm index 31f42cb45cb4a..89cedf62dec7b 100644 --- a/code/game/turfs/walls/resin.dm +++ b/code/game/turfs/walls/resin.dm @@ -30,8 +30,8 @@ return INITIALIZE_HINT_LATELOAD -/turf/closed/wall/resin/flamer_fire_act(burnlevel) - take_damage(burnlevel * 1.25, BURN, FIRE) +/turf/closed/wall/resin/fire_act(burn_level) + take_damage(burn_level * 1.25, BURN, FIRE) /turf/closed/wall/resin/proc/thicken() diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index 50db983377339..34a7a28958ff2 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -221,7 +221,7 @@ /turf/closed/wall/sulaco/unmeltable/ex_act(severity) //Should make it indestructable return -/turf/closed/wall/sulaco/unmeltable/fire_act(exposed_temperature, exposed_volume) +/turf/closed/wall/sulaco/unmeltable/fire_act(burn_level) return /turf/closed/wall/sulaco/unmeltable/attackby(obj/item/I, mob/user, params) //This should fix everything else. No cables, etc @@ -238,7 +238,7 @@ /turf/closed/wall/indestructible/ex_act(severity) return -/turf/closed/wall/indestructible/fire_act(exposed_temperature, exposed_volume) +/turf/closed/wall/indestructible/fire_act(burn_level) return /turf/closed/wall/indestructible/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/admin/server_verbs.dm b/code/modules/admin/server_verbs.dm index 86d67a8a80c09..884708aa114fc 100644 --- a/code/modules/admin/server_verbs.dm +++ b/code/modules/admin/server_verbs.dm @@ -444,7 +444,7 @@ if(!check_rights(R_SERVER)) return - if(tgui_alert(usr, "Are you sure you want to reload admins?", "Reload admins", list("Yes", "No")) != "Yes") + if(tgui_alert(usr, "Are you sure you want to reload admins?", "Reload admins", list("No", "Yes")) != "Yes") return load_admins() diff --git a/code/modules/admin/verbs/podlauncher.dm b/code/modules/admin/verbs/podlauncher.dm deleted file mode 100644 index 42e1495fb52bd..0000000000000 --- a/code/modules/admin/verbs/podlauncher.dm +++ /dev/null @@ -1,695 +0,0 @@ -/datum/admins/proc/launch_pod() - set category = "Admin.Fun" - set name = "Launch Supply Pod" - - if(!check_rights(R_FUN)) - return - - var/datum/podlauncher/P = new(usr) - if(!P.bay || !P.podarea) - return - - to_chat(world, "verb") - - P.ui_interact(usr) - - to_chat(world, "post ui_interact") - -/datum/podlauncher - interaction_flags = INTERACT_UI_INTERACT - var/static/list/ignored_atoms = typecacheof(list(null, /mob/dead, /obj/effect/landmark, /obj/docking_port, /obj/effect/particle_effect/sparks, /obj/effect/DPtarget, /obj/effect/supplypod_selector)) - var/turf/oldTurf - var/client/holder - var/area/bay - var/area/podarea - var/launchClone = FALSE - var/launchChoice = 1 - var/explosionChoice = 0 - var/damageChoice = 0 - var/launcherActivated = FALSE - var/effectBurst = FALSE - var/effectAnnounce = FALSE - var/numTurfs = 0 - var/launchCounter = 1 - var/atom/specificTarget - var/list/orderedArea - var/list/turf/acceptableTurfs - var/list/launchList - var/obj/effect/supplypod_selector/selector - var/obj/structure/closet/supplypod/centcompod/temp_pod - - -/datum/podlauncher/New(user) - if(istype(user, /client)) - var/client/C = user - holder = C - else if(ismob(user)) - var/mob/M = user - holder = M.client - bay = locate(/area/centcom/supplypod/loading/one) in GLOB.sorted_areas - podarea = locate(/area/centcom/supplypod/podStorage) in GLOB.sorted_areas - createPod(podarea) - selector = new() - launchList = list() - acceptableTurfs = list() - orderedArea = createOrderedArea(bay) - - to_chat(world, "new") - -/datum/podlauncher/Destroy() - updateCursor(FALSE) - QDEL_NULL(temp_pod) - QDEL_NULL(selector) - to_chat(world, "destroy") - return ..() - - -/datum/podlauncher/can_interact(mob/user) - return TRUE - -/datum/podlauncher/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - - to_chat(world, "ui_interact called") - - if(!ui) - ui = new(user, src, "PodLauncher", "podlauncher") - ui.open() - -/datum/podlauncher/ui_data(mob/user) - if(!temp_pod) - to_chat(user, span_warning("Pod has been deleted, closing the menu.")) - SStgui.close_user_uis(user, src) - return - var/list/data = list() - var/B = (istype(bay, /area/centcom/supplypod/loading/one)) ? 1 : (istype(bay, /area/centcom/supplypod/loading/two)) ? 2 : (istype(bay, /area/centcom/supplypod/loading/three)) ? 3 : (istype(bay, /area/centcom/supplypod/loading/four)) ? 4 : (istype(bay, /area/centcom/supplypod/loading/ert)) ? 5 : 0 - data["bay"] = bay - data["bayNumber"] = B - data["oldArea"] = (oldTurf ? get_area(oldTurf) : null) - data["launchClone"] = launchClone - data["launchChoice"] = launchChoice - data["explosionChoice"] = explosionChoice - data["damageChoice"] = damageChoice - data["fallDuration"] = temp_pod.fallDuration - data["landingDelay"] = temp_pod.landingDelay - data["openingDelay"] = temp_pod.openingDelay - data["departureDelay"] = temp_pod.departureDelay - data["styleChoice"] = temp_pod.style - data["effectStun"] = temp_pod.effectStun - data["effectLimb"] = temp_pod.effectLimb - data["effectOrgans"] = temp_pod.effectOrgans - data["effectBluespace"] = temp_pod.bluespace - data["effectStealth"] = temp_pod.effectStealth - data["effectQuiet"] = temp_pod.effectQuiet - data["effectMissile"] = temp_pod.effectMissile - data["effectCircle"] = temp_pod.effectCircle - data["effectBurst"] = effectBurst - data["effectReverse"] = temp_pod.reversing - data["effectTarget"] = specificTarget - data["effectName"] = temp_pod.adminNamed - data["effectAnnounce"] = effectAnnounce - data["giveLauncher"] = launcherActivated - data["numObjects"] = numTurfs - data["fallingSound"] = temp_pod.fallingSound != initial(temp_pod.fallingSound) - data["landingSound"] = temp_pod.landingSound - data["openingSound"] = temp_pod.openingSound - data["leavingSound"] = temp_pod.leavingSound - data["soundVolume"] = temp_pod.soundVolume != initial(temp_pod.soundVolume) - - return data - -/datum/podlauncher/ui_act(action, list/params) - . = ..() - if(.) - return - - switch(action) - if("bay") - switch(text2num(params["bay"])) - if(1) - bay = locate(/area/centcom/supplypod/loading/one) in GLOB.sorted_areas - if(2) - bay = locate(/area/centcom/supplypod/loading/two) in GLOB.sorted_areas - if(3) - bay = locate(/area/centcom/supplypod/loading/three) in GLOB.sorted_areas - if(4) - bay = locate(/area/centcom/supplypod/loading/four) in GLOB.sorted_areas - if(5) - bay = locate(/area/centcom/supplypod/loading/ert) in GLOB.sorted_areas - refreshBay() - . = TRUE - - if("teleportCentcom") - var/mob/M = holder.mob - oldTurf = get_turf(M) - var/area/A = locate(bay) in GLOB.sorted_areas - var/list/turfs = list() - for(var/turf/T in A) - turfs.Add(T) - var/turf/T = SAFEPICK(turfs) - if(!T) - to_chat(M, span_warning("Nowhere to jump to!")) - return - M.forceMove(T) - log_admin("[key_name(usr)] jumped to [AREACOORD(A)]") - message_admins("[key_name_admin(usr)] jumped to [AREACOORD(A)]") - . = TRUE - - if("teleportBack") - var/mob/M = holder.mob - if(!oldTurf) - to_chat(M, span_warning("Nowhere to jump to!")) - return - M.forceMove(oldTurf) - log_admin("[key_name(usr)] jumped to [AREACOORD(oldTurf)]") - message_admins("[key_name_admin(usr)] jumped to [AREACOORD(oldTurf)]") - . = TRUE - - if("launchClone") - launchClone = !launchClone - . = TRUE - - if("launchOrdered") - if(launchChoice == 1) - launchChoice = 0 - updateSelector() - . = TRUE - return - launchChoice = 1 - updateSelector() - . = TRUE - - if("launchRandom") - if(launchChoice == 2) - launchChoice = 0 - updateSelector() - . = TRUE - return - launchChoice = 2 - updateSelector() - . = TRUE - - if("explosionCustom") - if(explosionChoice == 1) - explosionChoice = 0 - temp_pod.explosionSize = list(0, 0, 0, 0) - . = TRUE - return - var/list/expNames = list("Devastation", "Heavy Damage", "Light Damage", "Flash") - var/list/boomInput = list() - for(var/i in 1 to length(expNames)) - boomInput.Add(input("[expNames[i]] Range", "Enter the [expNames[i]] range of the explosion. WARNING: This ignores the bomb cap!", 0) as null|num) - if(isnull(boomInput[i])) - return - if(!isnum(boomInput[i])) - to_chat(holder, span_warning("That wasnt a number! Value set to zero instead.")) - boomInput = 0 - explosionChoice = 1 - temp_pod.explosionSize = boomInput - . = TRUE - - if("explosionBus") - if(explosionChoice == 2) - explosionChoice = 0 - temp_pod.explosionSize = list(0, 0, 0, 0) - . = TRUE - return - explosionChoice = 2 - temp_pod.explosionSize = list(GLOB.MAX_EX_DEVESTATION_RANGE, GLOB.MAX_EX_HEAVY_RANGE, GLOB.MAX_EX_LIGHT_RANGE, GLOB.MAX_EX_FLAME_RANGE) - . = TRUE - - if("damageCustom") - if(damageChoice == 1) - damageChoice = 0 - temp_pod.damage = 0 - . = TRUE - return - var/damageInput = input("How much damage to deal", "Enter the amount of brute damage dealt by getting hit", 0) as null|num - if(isnull(damageInput)) - return - if(!isnum(damageInput)) - to_chat(holder, span_warning("That wasn't a number! Value set to default (zero) instead.")) - damageInput = 0 - damageChoice = 1 - temp_pod.damage = damageInput - . = TRUE - - if("damageGib") - if(damageChoice == 2) - damageChoice = 0 - temp_pod.damage = 0 - temp_pod.effectGib = FALSE - . = TRUE - return - damageChoice = 2 - temp_pod.damage = 5000 - temp_pod.effectGib = TRUE - . = TRUE - - if("effectName") - if(temp_pod.adminNamed) - temp_pod.adminNamed = FALSE - temp_pod.setStyle(temp_pod.style) - . = TRUE - return - var/nameInput= input("Custom name", "Enter a custom name", GLOB.pod_styles[temp_pod.style][POD_NAME]) as null|text - if(isnull(nameInput)) - return - var/descInput = input("Custom description", "Enter a custom desc", GLOB.pod_styles[temp_pod.style][POD_DESC]) as null|text - if(isnull(descInput)) - return - temp_pod.name = nameInput - temp_pod.desc = descInput - temp_pod.adminNamed = TRUE - . = TRUE - - if("effectStun") - temp_pod.effectStun = !temp_pod.effectStun - . = TRUE - - if("effectLimb") - temp_pod.effectLimb = !temp_pod.effectLimb - . = TRUE - - if("effectOrgans") - temp_pod.effectOrgans = !temp_pod.effectOrgans - . = TRUE - - if("effectBluespace") - temp_pod.bluespace = !temp_pod.bluespace - . = TRUE - - if("effectStealth") - temp_pod.effectStealth = !temp_pod.effectStealth - . = TRUE - - if("effectQuiet") - temp_pod.effectQuiet = !temp_pod.effectQuiet - . = TRUE - - if("effectMissile") - temp_pod.effectMissile = !temp_pod.effectMissile - . = TRUE - - if("effectCircle") - temp_pod.effectCircle = !temp_pod.effectCircle - . = TRUE - - if("effectBurst") - effectBurst = !effectBurst - . = TRUE - - if("effectAnnounce") - effectAnnounce = !effectAnnounce - . = TRUE - - if("effectReverse") - temp_pod.reversing = !temp_pod.reversing - . = TRUE - - if("effectTarget") - if(specificTarget) - specificTarget = null - . = TRUE - return - var/list/mobs = sortmobs() - var/inputTarget = input("Select a mob!", "Target", null, null) as null|anything in mobs - if(isnull(inputTarget)) - return - var/mob/target = mobs[inputTarget] - specificTarget = target - . = TRUE - - if("fallDuration") - if(temp_pod.fallDuration != initial(temp_pod.fallDuration)) - temp_pod.fallDuration = initial(temp_pod.fallDuration) - . = TRUE - return - var/timeInput = input("Enter the duration of the pod's falling animation, in seconds", "Delay Time", initial(temp_pod.fallDuration) * 0.1) as null|num - if(isnull(timeInput)) - return - if(!isnum(timeInput)) - to_chat(holder, span_warning("That wasn't a number! Value set to default [initial(temp_pod.fallDuration) * 0.1] instead.")) - timeInput = initial(temp_pod.fallDuration) - temp_pod.fallDuration = 10 * timeInput - . = TRUE - - if("landingDelay") - if(temp_pod.landingDelay != initial(temp_pod.landingDelay)) - temp_pod.landingDelay = initial(temp_pod.landingDelay) - . = TRUE - return - var/timeInput = input("Enter the time it takes for the pod to land, in seconds", "Delay Time", initial(temp_pod.landingDelay) * 0.1) as null|num - if(isnull(timeInput)) - return - if(!isnum(timeInput)) - to_chat(holder, span_warning("That wasnt a number! Value set to default [initial(temp_pod.landingDelay) * 0.1] instead.")) - timeInput = initial(temp_pod.landingDelay) - temp_pod.landingDelay = 10 * timeInput - . = TRUE - - if("openingDelay") - if(temp_pod.openingDelay != initial(temp_pod.openingDelay)) - temp_pod.openingDelay = initial(temp_pod.openingDelay) - . = TRUE - return - var/timeInput = input("Enter the time it takes for the pod to open after landing, in seconds", "Delay Time", initial(temp_pod.openingDelay) * 0.1) as null|num - if(isnull(timeInput)) - return - if(!isnum(timeInput)) - to_chat(holder, span_warning("That wasnt a number! Value set to default [initial(temp_pod.openingDelay) * 0.1] instead.")) - timeInput = initial(temp_pod.openingDelay) - temp_pod.openingDelay = 10 * timeInput - . = TRUE - - if("departureDelay") - if(temp_pod.departureDelay != initial(temp_pod.departureDelay)) - temp_pod.departureDelay = initial(temp_pod.departureDelay) - . = TRUE - return - var/timeInput = input("Enter the time it takes for the pod to leave after opening, in seconds", "Delay Time", initial(temp_pod.departureDelay) * 0.1) as null|num - if(isnull(timeInput)) - return - if(!isnum(timeInput)) - to_chat(holder, span_warning("That wasnt a number! Value set to default [initial(temp_pod.departureDelay) * 0.1] instead.")) - timeInput = initial(temp_pod.departureDelay) - temp_pod.departureDelay = 10 * timeInput - . = TRUE - - if("fallingSound") - if((temp_pod.fallingSound) != initial(temp_pod.fallingSound)) - temp_pod.fallingSound = initial(temp_pod.fallingSound) - temp_pod.fallingSoundLength = initial(temp_pod.fallingSoundLength) - . = TRUE - return - var/soundInput = input(holder, "Please pick a sound file to play when the pod lands.", "Pick a Sound File") as null|sound - if(isnull(soundInput)) - return - var/timeInput = input(holder, "What is the exact length of the sound file, in seconds?", "Pick a Sound File", 0.3) as null|num - if(isnull(timeInput)) - return - if(!isnum(timeInput)) - to_chat(holder, span_warning("That wasnt a number! Value set to default [initial(temp_pod.fallingSoundLength) * 0.1] instead.")) - temp_pod.fallingSound = soundInput - temp_pod.fallingSoundLength = 10 * timeInput - . = TRUE - - if("landingSound") - if(!isnull(temp_pod.landingSound)) - temp_pod.landingSound = null - . = TRUE - return - var/soundInput = input(holder, "Please pick a sound file to play when the pod lands! I reccomend a nice \"oh shit, i'm sorry\", incase you hit someone with the pod.", "Pick a Sound File") as null|sound - if(isnull(soundInput)) - return - temp_pod.landingSound = soundInput - . = TRUE - - if("openingSound") - if(!isnull(temp_pod.openingSound)) - temp_pod.openingSound = null - . = TRUE - return - var/soundInput = input(holder, "Please pick a sound file to play when the pod opens! I reccomend a stock sound effect of kids cheering at a party, incase your pod is full of fun exciting stuff!", "Pick a Sound File") as null|sound - if(isnull(soundInput)) - return - temp_pod.openingSound = soundInput - . = TRUE - - if("leavingSound") - if(!isnull(temp_pod.leavingSound)) - temp_pod.leavingSound = null - . = TRUE - return - var/soundInput = input(holder, "Please pick a sound file to play when the pod leaves! I reccomend a nice slide whistle sound, especially if you're using the reverse pod effect.", "Pick a Sound File") as null|sound - if(isnull(soundInput)) - return - temp_pod.leavingSound = soundInput - . = TRUE - - if("soundVolume") - if(temp_pod.soundVolume != initial(temp_pod.soundVolume)) - temp_pod.soundVolume = initial(temp_pod.soundVolume) - . = TRUE - return - var/soundInput = input(holder, "Please pick a volume level between 1 and 100.", "Pick Admin Sound Volume") as null|num - if(isnull(soundInput)) - return - temp_pod.soundVolume = soundInput - . = TRUE - - if("styleStandard") - temp_pod.setStyle(STYLE_STANDARD) - . = TRUE - - if("styleBluespace") - temp_pod.setStyle(STYLE_BLUESPACE) - . = TRUE - - if("styleSyndie") - temp_pod.setStyle(STYLE_SYNDICATE) - . = TRUE - - if("styleBlue") - temp_pod.setStyle(STYLE_BLUE) - . = TRUE - - if("styleCult") - temp_pod.setStyle(STYLE_CULT) - . = TRUE - - if("styleMissile") - temp_pod.setStyle(STYLE_MISSILE) - . = TRUE - - if("styleSMissile") - temp_pod.setStyle(STYLE_RED_MISSILE) - . = TRUE - - if("styleBox") - temp_pod.setStyle(STYLE_BOX) - . = TRUE - - if("styleHONK") - temp_pod.setStyle(STYLE_HONK) - . = TRUE - - - if("styleFruit") - temp_pod.setStyle(STYLE_FRUIT) - . = TRUE - - if("styleInvisible") - temp_pod.setStyle(STYLE_INVISIBLE) - . = TRUE - - if("styleGondola") - temp_pod.setStyle(STYLE_GONDOLA) - . = TRUE - - if("styleSeeThrough") - temp_pod.setStyle(STYLE_SEETHROUGH) - . = TRUE - - if("refresh") - refreshBay() - . = TRUE - - if("giveLauncher") - launcherActivated = !launcherActivated - updateCursor(launcherActivated) - . = TRUE - - if("clearBay") - if(alert(usr, "This will delete all objs and mobs in [bay]. Are you sure?", "Confirmation", "Yes", "No") != "Yes") - return - - clearBay() - refreshBay() - . = TRUE - -/datum/podlauncher/on_unset_interaction() - qdel(src) - - -/datum/podlauncher/proc/updateCursor(launching) - if(holder) - if(launching) - holder.mouse_up_icon = 'icons/effects/supplypod_target.dmi' - holder.mouse_down_icon = 'icons/effects/supplypod_down_target.dmi' - holder.mouse_pointer_icon = holder.mouse_up_icon - holder.click_intercept = src - else - holder.mouse_up_icon = null - holder.mouse_down_icon = null - holder.click_intercept = null - holder.mouse_pointer_icon = initial(holder.mouse_pointer_icon) - - -/datum/podlauncher/InterceptClickOn(user, params, atom/target) - if(!temp_pod) - updateCursor(FALSE) - return FALSE - - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - if(launcherActivated) - if(istype(target,/atom/movable/screen)) - return FALSE - - . = TRUE - - if(left_click) - preLaunch() - if(!isnull(specificTarget)) - target = get_turf(specificTarget) - else if(target) - target = get_turf(target) - else - return - //if(effectAnnounce) - // deadchat_broadcast(span_deadsay("A special package is being launched at the station!"), turf_target = target) - var/list/targets = list() - for(var/mob/living/M in viewers(0, target)) - targets.Add(M) - supplypod_log(targets, target) - if(!effectBurst) - launch(target) - else - for(var/i in 1 to 5) - if(isnull(target)) - break - preLaunch() - var/LZ = locate(target.x + rand(-1, 1), target.y + rand(-1, 1), target.z) - if(LZ) - launch(LZ) - else - launch(target) - sleep(rand() * 2) - - -/datum/podlauncher/proc/refreshBay() - orderedArea = createOrderedArea(bay) - preLaunch() - - -/datum/podlauncher/proc/createPod(area/A) - if(isnull(A)) - to_chat(holder.mob, span_warning("No /area/centcom/supplypod/podStorage in the world! You can make one yourself if necessary.")) - return - - temp_pod = new(A) - - -/datum/podlauncher/proc/createOrderedArea(area/A) - if(isnull(A)) - to_chat(holder.mob, span_warning("No /area/centcom/supplypod/loading/ in the world! You can make one yourself if necessary.")) - return - - orderedArea = list() - if(!isemptylist(A.contents)) - var/startX = A.contents[1].x - var/endX = A.contents[1].x - var/startY = A.contents[1].y - var/endY = A.contents[1].y - for(var/turf/T in A) - if(T.x < startX) - startX = T.x - else if(T.x > endX) - endX = T.x - else if(T.y > startY) - startY = T.y - else if(T.y < endY) - endY = T.y - for(var/i in endY to startY) - for(var/j in startX to endX) - orderedArea.Add(locate(j, startY - (i - endY), 1)) - return orderedArea - - -/datum/podlauncher/proc/preLaunch() - numTurfs = 0 - acceptableTurfs = list() - for(var/turf/T in orderedArea) - if(length(typecache_filter_list_reverse(T.contents, ignored_atoms))) - acceptableTurfs.Add(T) - numTurfs ++ - - launchList = list() - if(!isemptylist(acceptableTurfs) && !temp_pod.reversing && !temp_pod.effectMissile) - switch(launchChoice) - if(0) - for(var/turf/T in acceptableTurfs) - launchList |= typecache_filter_list_reverse(T.contents, ignored_atoms) - if(1) - if(launchCounter > length(acceptableTurfs)) - launchCounter = 1 - for(var/atom/movable/O in acceptableTurfs[launchCounter].contents) - launchList |= typecache_filter_list_reverse(acceptableTurfs[launchCounter].contents, ignored_atoms) - if(2) - var/turf/acceptable_turf = pick_n_take(acceptableTurfs) - launchList |= typecache_filter_list_reverse(acceptable_turf.contents, ignored_atoms) - updateSelector() - - -/datum/podlauncher/proc/launch(turf/A) - if(isnull(A)) - return - var/obj/structure/closet/supplypod/centcompod/toLaunch = DuplicateObject(temp_pod, temp_pod.loc) - toLaunch.bay = bay - toLaunch.update_icon() - var/shippingLane = GLOB.areas_by_type[/area/centcom/supplypod/flyMeToTheMoon] - toLaunch.forceMove(shippingLane) - if(launchClone) - for(var/atom/movable/O in launchList) - DuplicateObject(O, toLaunch) - new /obj/effect/DPtarget(A, toLaunch) - else - for(var/atom/movable/O in launchList) - O.forceMove(toLaunch) - new /obj/effect/DPtarget(A, toLaunch) - if(launchClone) - launchCounter++ - - -/datum/podlauncher/proc/updateSelector() - if(launchChoice == 1 && !isemptylist(acceptableTurfs) && !temp_pod.reversing && !temp_pod.effectMissile) - var/index = launchCounter + 1 - if(index > length(acceptableTurfs)) - index = 1 - selector.forceMove(acceptableTurfs[index]) - else - selector.moveToNullspace() - - -/datum/podlauncher/proc/clearBay() - for(var/obj/O in bay.GetAllContents()) - qdel(O) - for(var/mob/M in bay.GetAllContents()) - qdel(M) - - -/datum/podlauncher/proc/supplypod_log(list/targets, atom/target) - var/podString = effectBurst ? "5 pods" : "a pod" - var/whomString = "" - for(var/i in targets) - var/mob/M = i - whomString += "[key_name(M)], " - - var/delayString = temp_pod.landingDelay == initial(temp_pod.landingDelay) ? "" : " Delay=[temp_pod.landingDelay*0.1]s" - var/damageString = temp_pod.damage == 0 ? "" : " Dmg=[temp_pod.damage]" - var/explosionString = "" - var/playerString = specificTarget ? "Target=[ADMIN_TPMONTY(specificTarget)]" : "" - var/explosion_sum = temp_pod.explosionSize[1] + temp_pod.explosionSize[2] + temp_pod.explosionSize[3] + temp_pod.explosionSize[4] - var/areaString = "[ADMIN_VERBOSEJMP(target)]" - if(explosion_sum != 0) - explosionString = " Boom=|" - for(var/X in temp_pod.explosionSize) - explosionString += "[X]|" - - var/msg = "launched [podString][whomString][delayString][damageString][explosionString][playerString][areaString]." - log_admin("[key_name(usr)] [msg]") - message_admins("[ADMIN_TPMONTY(usr)] [msg]") - for(var/i in targets) - var/mob/M = i - admin_ticket_log(M, "[key_name_admin(usr)] [msg]") diff --git a/code/modules/ai/ai_behaviors/xeno/puppet.dm b/code/modules/ai/ai_behaviors/xeno/puppet.dm index 504988bd75042..af6a31b0105e4 100644 --- a/code/modules/ai/ai_behaviors/xeno/puppet.dm +++ b/code/modules/ai/ai_behaviors/xeno/puppet.dm @@ -145,11 +145,6 @@ return TRUE else return seek_and_attack() - if(PUPPET_SCOUT) //makes our parent wander and turn off recalling if out of range - too_far_escort = FALSE - base_action = MOVING_TO_NODE - change_action(MOVING_TO_NODE) - return TRUE ///behavior to deal with obstacles /datum/ai_behavior/puppet/deal_with_obstacle(datum/source, direction) diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 6b82cd6a2519f..f03e9a385a72c 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -35,12 +35,7 @@ if(!members.Find(item)) if(item.parent) - var/static/pipenetwarnings = 10 - if(pipenetwarnings > 0) - warning("build_pipeline(): [item.type] added to a pipenet while still having one. (pipes leading to the same spot stacking in one turf) around [AREACOORD(item)]") - pipenetwarnings-- - if(pipenetwarnings == 0) - warning("build_pipeline(): further messages about pipenets will be suppressed") + log_mapping("build_pipeline(): [item.type] added to pipenet multiple times. (pipes leading to the same spot stacking in one turf). Target:[AREACOORD(item)], Base:[AREACOORD(base)]") members += item RegisterSignal(item, COMSIG_QDELETING, PROC_REF(clean_members)) possible_expansions += item diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 048a2a86de9c3..4d6a52fb33252 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -297,7 +297,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE /client/verb/toggle_gas_mask_sound() set category = "Preferences" - set name = "Toggle Gas Mask sounds." + set name = "Toggle Gas Mask sounds" usr.client.prefs.toggles_sound ^= SOUND_GAS_MASK usr.client.prefs.save_preferences() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 5bbdf8d9be306..fe32254592fb9 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -62,21 +62,6 @@ ..() return user.equip_to_appropriate_slot(src) -/obj/item/clothing/on_pocket_insertion() - . = ..() - update_icon() - -/obj/item/clothing/on_pocket_removal() - . = ..() - update_icon() - -/obj/item/clothing/do_quick_equip(mob/user) - for(var/attachment_slot in attachments_by_slot) - if(ismodulararmorstoragemodule(attachments_by_slot[attachment_slot])) - var/obj/item/armor_module/storage/storage_attachment = attachments_by_slot[attachment_slot] - return storage_attachment.storage.do_quick_equip(user) - return src - //Updates the icons of the mob wearing the clothing item, if any. /obj/item/clothing/proc/update_clothing_icon() return @@ -194,15 +179,6 @@ var/mob/M = loc M.update_inv_wear_suit() -/obj/item/clothing/suit/MouseDrop(over_object, src_location, over_location) - if(!attachments_by_slot[ATTACHMENT_SLOT_STORAGE]) - return ..() - if(!istype(attachments_by_slot[ATTACHMENT_SLOT_STORAGE], /obj/item/armor_module/storage)) - return ..() - var/obj/item/armor_module/storage/armor_storage = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] - if(armor_storage.storage.handle_mousedrop(usr, over_object)) - return ..() - ///////////////////////////////////////////////////////// //Gloves /obj/item/clothing/gloves @@ -313,13 +289,3 @@ if (ismob(src.loc)) var/mob/M = src.loc M.update_inv_shoes() - - -/obj/item/clothing/shoes/MouseDrop(over_object, src_location, over_location) - if(!attachments_by_slot[ATTACHMENT_SLOT_STORAGE]) - return ..() - if(!istype(attachments_by_slot[ATTACHMENT_SLOT_STORAGE], /obj/item/armor_module/storage)) - return ..() - var/obj/item/armor_module/storage/armor_storage = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] - if(armor_storage.storage.handle_mousedrop(usr, over_object)) - return ..() diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index 950a0078e4d20..00f1207187f8b 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -24,15 +24,6 @@ return item_icons = list(slot_head_str = icon) -/obj/item/clothing/head/MouseDrop(over_object, src_location, over_location) - if(!attachments_by_slot[ATTACHMENT_SLOT_STORAGE]) - return ..() - if(!istype(attachments_by_slot[ATTACHMENT_SLOT_STORAGE], /obj/item/armor_module/storage)) - return ..() - var/obj/item/armor_module/storage/armor_storage = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] - if(armor_storage.storage.handle_mousedrop(usr, over_object)) - return ..() - /obj/item/clothing/head/beanie name = "\improper TGMC beanie" desc = "A standard military beanie, often worn by non-combat military personnel and support crews, though the occasional one finds its way to the front line. Popular due to being comfortable and snug." diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 9bdd311fb7315..21d7e3551627d 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -162,29 +162,22 @@ . = ..() helmet_overlays = list("damage","band","item") //To make things simple. -/obj/item/clothing/head/helmet/marine/on_pocket_insertion() - . = ..() - update_helmet_overlays() - -/obj/item/clothing/head/helmet/marine/on_pocket_removal() - . = ..() - update_helmet_overlays() - ///Updates the helmet_overlays list, inserting and removing images from it as necesarry -/obj/item/clothing/head/helmet/marine/proc/update_helmet_overlays() +/obj/item/clothing/head/helmet/marine/update_overlays() + . = ..() if(!attachments_by_slot[ATTACHMENT_SLOT_STORAGE]) return if(!istype(attachments_by_slot[ATTACHMENT_SLOT_STORAGE], /obj/item/armor_module/storage)) return var/obj/item/armor_module/storage/armor_storage = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] - if(length(armor_storage.storage.contents) && (marine_helmet_flags & HELMET_GARB_OVERLAY)) + if(length(armor_storage.contents) && (marine_helmet_flags & HELMET_GARB_OVERLAY)) if(!helmet_overlays["band"]) var/image/I = image('icons/obj/clothing/headwear/marine_hats.dmi', src, "helmet_band") helmet_overlays["band"] = I if(!helmet_overlays["item"]) - var/obj/O = armor_storage.storage.contents[1] + var/obj/O = armor_storage.contents[1] if(O.type in allowed_helmet_items) var/image/I = image('icons/obj/clothing/headwear/marine_hats.dmi', src, "[allowed_helmet_items[O.type]][O.type == /obj/item/tool/lighter/random ? O:clr : ""]") helmet_overlays["item"] = I diff --git a/code/modules/clothing/modular_armor/attachments.dm b/code/modules/clothing/modular_armor/attachments.dm index 8a7e3d639a1eb..863171eeef5b1 100644 --- a/code/modules/clothing/modular_armor/attachments.dm +++ b/code/modules/clothing/modular_armor/attachments.dm @@ -184,4 +184,3 @@ /obj/item/armor_module/armor/proc/extra_examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER examine_list += "Right click the [parent] with paint to color [src]" - diff --git a/code/modules/clothing/modular_armor/attachments/arm_plates.dm b/code/modules/clothing/modular_armor/attachments/arm_plates.dm index 03ecc155768f0..1269cbc93ddf1 100644 --- a/code/modules/clothing/modular_armor/attachments/arm_plates.dm +++ b/code/modules/clothing/modular_armor/attachments/arm_plates.dm @@ -54,6 +54,11 @@ desc = "Designed for use with the Jaeger Combat Exoskeleton. It provides high protection and encumbrance when attached and is fairly easy to attach and remove from armor. Click on the armor frame to attach it. All arm plates have the same armor and slowdown, meaning that only changing the chestplate makes significant armor difference. This armor appears to be marked as a Trooper armor piece." greyscale_config = /datum/greyscale_config/armor_mk1/trooper +/obj/item/armor_module/armor/arms/marine/mjolnir + name = "\improper Jaeger Pattern Mjolnir arm plates" + desc = "Designed for use with the Jaeger Combat Exoskeleton. It provides high protection and encumbrance when attached and is fairly easy to attach and remove from armor. Click on the armor frame to attach it. All arm plates have the same armor and slowdown, meaning that only changing the chestplate makes significant armor difference. This armor appears to be marked as a Mjolnir armor piece." + greyscale_config = /datum/greyscale_config/armor_mk1/mjolnir + // Hardsuit Arm Plates /obj/item/armor_module/armor/arms/marine/hardsuit_arms name = "\improper FleckTex Base arm plates" diff --git a/code/modules/clothing/modular_armor/attachments/chest_plates.dm b/code/modules/clothing/modular_armor/attachments/chest_plates.dm index 1fd46f4c484f7..6b89c712bd139 100644 --- a/code/modules/clothing/modular_armor/attachments/chest_plates.dm +++ b/code/modules/clothing/modular_armor/attachments/chest_plates.dm @@ -59,6 +59,11 @@ desc = "Designed for use with the Jaeger Combat Exoskeleton. It provides high protection and encumbrance when attached and is fairly easy to attach and remove from armor. Click on the armor frame to attach it. This armor appears to be marked as a Ranger armor piece." greyscale_config = /datum/greyscale_config/armor_mk1/ranger +/obj/item/armor_module/armor/chest/marine/mjolnir + name = "\improper Jaeger Pattern Mjolnir chestplates" + desc = "Designed for use with the Jaeger Combat Exoskeleton. It provides high protection and encumbrance when attached and is fairly easy to attach and remove from armor. Click on the armor frame to attach it. This armor appears to be marked as a Mjolnir armor piece." + greyscale_config = /datum/greyscale_config/armor_mk1/mjolnir + // Hardsuit Chest Plates /obj/item/armor_module/armor/chest/marine/hardsuit icon_state_variants = list( diff --git a/code/modules/clothing/modular_armor/attachments/leg_plates.dm b/code/modules/clothing/modular_armor/attachments/leg_plates.dm index a4b968b53731b..b392b041d65d4 100644 --- a/code/modules/clothing/modular_armor/attachments/leg_plates.dm +++ b/code/modules/clothing/modular_armor/attachments/leg_plates.dm @@ -54,6 +54,11 @@ desc = "Designed for use with the Jaeger Combat Exoskeleton. It provides high protection and encumbrance when attached and is fairly easy to attach and remove from armor. Click on the armor frame to attach it. All leg plates have the same armor and slowdown, meaning that only changing the chestplate makes significant armor difference. This armor appears to be marked as a Trooper armor piece." greyscale_config = /datum/greyscale_config/armor_mk1/trooper +/obj/item/armor_module/armor/legs/marine/mjolnir + name = "\improper Jaeger Pattern Mjolnir leg plates" + desc = "Designed for use with the Jaeger Combat Exoskeleton. It provides high protection and encumbrance when attached and is fairly easy to attach and remove from armor. Click on the armor frame to attach it. All leg plates have the same armor and slowdown, meaning that only changing the chestplate makes significant armor difference. armor appears to be marked as a Mjolnir armor piece." + greyscale_config = /datum/greyscale_config/armor_mk1/mjolnir + // Hardsuit Leg Plates // Base Hardsuit Legs diff --git a/code/modules/clothing/modular_armor/attachments/storage.dm b/code/modules/clothing/modular_armor/attachments/storage.dm index 80f0dd60a0fcc..6793b8a9eac84 100644 --- a/code/modules/clothing/modular_armor/attachments/storage.dm +++ b/code/modules/clothing/modular_armor/attachments/storage.dm @@ -1,10 +1,8 @@ -/** +/*! Modular armor storage storage attachments - These are storage attachments that equip into storage slots on modular armor */ - /** Storage modules */ /obj/item/armor_module/storage icon = 'icons/mob/modular/modular_armor_modules.dmi' @@ -12,8 +10,8 @@ slot = ATTACHMENT_SLOT_STORAGE w_class = WEIGHT_CLASS_BULKY variants_by_parent_type = list(/obj/item/clothing/suit/modular/style = "") - ///Internal storage of the module. Its parent is switched to the parent item when attached. - var/obj/item/storage/internal/storage = /obj/item/storage/internal/modular + ///Determines what subtype of storage is on our item, see datums\storage\subtypes + var/datum/storage/storage_type = /datum/storage ///If TRUE it will add extra overlays for the items within. var/show_storage = FALSE ///Icon for the extra storage overlays. @@ -21,172 +19,47 @@ /obj/item/armor_module/storage/Initialize(mapload) . = ..() - storage = new storage(src) - -/obj/item/armor_module/storage/Destroy() - . = ..() - QDEL_NULL(storage) + create_storage(storage_type) + PopulateContents() /obj/item/armor_module/storage/on_attach(obj/item/attaching_to, mob/user) . = ..() equip_delay_self = parent.equip_delay_self strip_delay = parent.strip_delay - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(access_storage)) - RegisterSignal(parent, COMSIG_CLICK_ALT_RIGHT, PROC_REF(open_storage)) //Open storage if the armor is alt right clicked - RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(insert_item)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, PROC_REF(open_storage)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND_ALTERNATE, PROC_REF(draw_from_storage)) - RegisterSignal(parent, COMSIG_CLICK_CTRL, PROC_REF(left_draw_from_storage)) - storage.master_item = parent + + storage_datum.register_storage_signals(attaching_to) //XANTODO calls 0.register_storage_signals() /obj/item/armor_module/storage/on_detach(obj/item/detaching_from, mob/user) equip_delay_self = initial(equip_delay_self) strip_delay = initial(strip_delay) - UnregisterSignal(parent, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_CLICK_ALT_RIGHT, COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_ATTACK_GHOST, COMSIG_ATOM_ATTACK_HAND_ALTERNATE, COMSIG_CLICK_CTRL)) - storage.master_item = src - return ..() - -///Triggers attack hand interaction for storage when the parent is clicked on. -/obj/item/armor_module/storage/proc/access_storage(datum/source, mob/living/user) - SIGNAL_HANDLER - if(parent.loc != user) - return - INVOKE_ASYNC(storage, TYPE_PROC_REF(/obj/item/storage/internal, handle_attack_hand), user) - return COMPONENT_NO_ATTACK_HAND - -///Opens the internal storage when the parent is alt right clicked on. -/obj/item/armor_module/storage/proc/open_storage(datum/source, mob/living/user) - SIGNAL_HANDLER - if(!isobserver(user) && parent.loc != user) - return - storage.open(user) - return COMPONENT_NO_ATTACK_HAND - -///Inserts I into storage when parent is attacked by I. -/obj/item/armor_module/storage/proc/insert_item(datum/source, obj/item/I, mob/user) - SIGNAL_HANDLER - if(istype(I, /obj/item/facepaint) || istype(I, /obj/item/armor_module)) - return - if(parent.loc != user) - return - INVOKE_ASYNC(storage, TYPE_PROC_REF(/atom, attackby), I, user) - return COMPONENT_NO_AFTERATTACK -///We draw from the item's storage -/obj/item/armor_module/storage/proc/draw_from_storage(datum/source, mob/user) - SIGNAL_HANDLER - if(parent.loc != user) - return - INVOKE_ASYNC(storage, TYPE_PROC_REF(/obj/item/storage/internal, attempt_draw_object), user) - return COMPONENT_NO_ATTACK_HAND + storage_datum.unregister_storage_signals(detaching_from) - -///We draw the leftmost item from the item's storage -/obj/item/armor_module/storage/proc/left_draw_from_storage(datum/source, mob/user) - SIGNAL_HANDLER - if(parent.loc != user) - return - INVOKE_ASYNC(storage, TYPE_PROC_REF(/obj/item/storage/internal, attempt_draw_object), user, TRUE) - return COMPONENT_NO_ATTACK_HAND - -/obj/item/armor_module/storage/attackby(obj/item/I, mob/user, params) - . = ..() - storage.attackby(I, user, params) - -/obj/item/armor_module/storage/attack_hand(mob/living/user) - if(loc == user) - storage.open(user) - return return ..() -/obj/item/storage/internal/modular - max_storage_space = 2 - storage_slots = 2 - max_w_class = WEIGHT_CLASS_TINY - bypass_w_limit = list( - /obj/item/clothing/glasses, - ) +///Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT +/obj/item/armor_module/storage/proc/PopulateContents() + return - cant_hold = list( - /obj/item/stack, - ) +/obj/item/storage/internal/modular + storage_type = /datum/storage/internal/modular /* Pockets */ /obj/item/armor_module/storage/pocket icon_state = "" item_state = "" attach_features_flags = ATTACH_APPLY_ON_MOB - storage = /obj/item/storage/internal/pocket - -/obj/item/storage/internal/pocket - max_storage_space = 6 - storage_slots = 2 - max_w_class = WEIGHT_CLASS_NORMAL - bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/cell/lasgun, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/revolver, - /obj/item/ammo_magazine/sniper, - /obj/item/ammo_magazine/handful, - ) - cant_hold = list(/obj/item/cell/lasgun/volkite/powerpack) - -/obj/item/storage/internal/pocket/insertion_message(obj/item/item, mob/user) - var/visidist = item.w_class >= WEIGHT_CLASS_NORMAL ? 3 : 1 - //Grab the name of the object this pocket belongs to - user.visible_message(span_notice("[user] puts \a [item] into \the [master_item.name]."),\ - span_notice("You put \the [item] into \the [master_item.name]."),\ - null, visidist) + storage_type = /datum/storage/internal/pocket /obj/item/armor_module/storage/pocket/medical - storage = /obj/item/storage/internal/pocket/medical - -/obj/item/storage/internal/pocket/medical - max_storage_space = 30 - storage_slots = 5 - max_w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/stack/medical, - /obj/item/reagent_containers/hypospray, - /obj/item/reagent_containers/hypospray/advanced, - /obj/item/reagent_containers/hypospray/autoinjector, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/pill, - /obj/item/storage/pill_bottle, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/gloves/latex, - /obj/item/tweezers, - /obj/item/tweezers_advanced, - /obj/item/whistle, - ) + storage_type = /datum/storage/internal/pocket/medical /** General storage */ /obj/item/armor_module/storage/general name = "General Purpose Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Certainly not as specialised as any other storage modules, but definitely able to hold some larger things, like binoculars, maps, and motion detectors." icon_state = "mod_general_bag" - storage = /obj/item/storage/internal/modular/general - -/obj/item/storage/internal/modular/general - max_storage_space = 6 - storage_slots = 2 - max_w_class = WEIGHT_CLASS_NORMAL - - bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/cell/lasgun, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/revolver, - /obj/item/ammo_magazine/sniper, - /obj/item/ammo_magazine/handful, - /obj/item/cell/lasgun/plasma, - ) - cant_hold = list(/obj/item/cell/lasgun/volkite/powerpack) + storage_type = /datum/storage/internal/general /obj/item/armor_module/storage/general/som name = "General Purpose Storage module" @@ -198,93 +71,32 @@ name = "Magazine Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Holds some magazines. Don’t expect to fit specialist munitions or LMG drums in, but you can get some good mileage. Looks like it might slow you down a bit." icon_state = "mod_mag_bag" - storage = /obj/item/storage/internal/modular/ammo_mag + storage_type = /datum/storage/internal/ammo_mag slowdown = 0.1 -/obj/item/armor_module/storage/ammo_mag/freelancer/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/rifle/m16(storage) - new /obj/item/ammo_magazine/rifle/m16(storage) - new /obj/item/ammo_magazine/rifle/m16(storage) - new /obj/item/ammo_magazine/rifle/m16(storage) +/obj/item/armor_module/storage/ammo_mag/freelancer/PopulateContents() + new /obj/item/ammo_magazine/rifle/m16(src) + new /obj/item/ammo_magazine/rifle/m16(src) + new /obj/item/ammo_magazine/rifle/m16(src) + new /obj/item/ammo_magazine/rifle/m16(src) -/obj/item/armor_module/storage/ammo_mag/freelancer_two/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/rifle/tx11(storage) - new /obj/item/ammo_magazine/rifle/tx11(storage) - new /obj/item/ammo_magazine/rifle/tx11(storage) - new /obj/item/ammo_magazine/rifle/tx11(storage) +/obj/item/armor_module/storage/ammo_mag/freelancer_two/PopulateContents() + new /obj/item/ammo_magazine/rifle/tx11(src) + new /obj/item/ammo_magazine/rifle/tx11(src) + new /obj/item/ammo_magazine/rifle/tx11(src) + new /obj/item/ammo_magazine/rifle/tx11(src) -/obj/item/armor_module/storage/ammo_mag/freelancer_three/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/rifle/tx54(storage) - new /obj/item/ammo_magazine/rifle/tx54(storage) - new /obj/item/ammo_magazine/rifle/tx54/incendiary(storage) - new /obj/item/ammo_magazine/rifle/tx54/incendiary(storage) - - -/obj/item/storage/internal/modular/ammo_mag - max_storage_space = 15 - storage_slots = 4 - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( - /obj/item/weapon/combat_knife, - /obj/item/attachable/bayonetknife, - /obj/item/explosive/grenade/flare/civilian, - /obj/item/explosive/grenade/flare, - /obj/item/ammo_magazine/rifle, - /obj/item/cell/lasgun, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/pistol, - /obj/item/ammo_magazine/revolver, - /obj/item/ammo_magazine/sniper, - /obj/item/ammo_magazine/handful, - /obj/item/explosive/grenade, - /obj/item/explosive/mine, - /obj/item/reagent_containers/food/snacks, - ) +/obj/item/armor_module/storage/ammo_mag/freelancer_three/PopulateContents() + new /obj/item/ammo_magazine/rifle/tx54(src) + new /obj/item/ammo_magazine/rifle/tx54(src) + new /obj/item/ammo_magazine/rifle/tx54/incendiary(src) + new /obj/item/ammo_magazine/rifle/tx54/incendiary(src) /obj/item/armor_module/storage/engineering name = "Engineering Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Can hold about as much as a tool pouch, and sometimes small spools of things like barbed wire, or an entrenching tool." icon_state = "mod_engineer_bag" - storage = /obj/item/storage/internal/modular/engineering - -/obj/item/storage/internal/modular/engineering - max_storage_space = 15 - storage_slots = 5 - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( - /obj/item/stack/barbed_wire, - /obj/item/stack/sheet, - /obj/item/stack/rods, - /obj/item/stack/cable_coil, - /obj/item/stack/sandbags_empty, - /obj/item/stack/sandbags, - /obj/item/stack/razorwire, - /obj/item/tool/shovel/etool, - /obj/item/tool/wrench, - /obj/item/tool/weldingtool, - /obj/item/tool/wirecutters, - /obj/item/tool/crowbar, - /obj/item/tool/screwdriver, - /obj/item/tool/handheld_charger, - /obj/item/tool/multitool, - /obj/item/binoculars/tactical/range, - /obj/item/explosive/plastique, - /obj/item/explosive/grenade/chem_grenade/razorburn_small, - /obj/item/explosive/grenade/chem_grenade/razorburn_large, - /obj/item/cell/apc, - /obj/item/cell/high, - /obj/item/cell/rtg, - /obj/item/cell/super, - /obj/item/cell/potato, - /obj/item/assembly/signaler, - /obj/item/detpack, - /obj/item/circuitboard, - /obj/item/lightreplacer, - ) - cant_hold = list() + storage_type = /datum/storage/internal/engineering /obj/item/armor_module/storage/engineering/som name = "Engineering Storage module" @@ -296,40 +108,14 @@ name = "Medical Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Can hold a substantial variety of medical supplies and apparatus, but cannot hold as much as a medkit could." icon_state = "mod_medic_bag" - storage = /obj/item/storage/internal/modular/medical + storage_type = /datum/storage/internal/medical -/obj/item/armor_module/storage/medical/freelancer/Initialize(mapload) - . = ..() - new /obj/item/stack/medical/heal_pack/advanced/bruise_pack(storage) - new /obj/item/stack/medical/heal_pack/advanced/burn_pack(storage) - new /obj/item/storage/pill_bottle/meralyne(storage) - new /obj/item/storage/pill_bottle/dermaline(storage) - new /obj/item/storage/pill_bottle/tramadol(storage) - -/obj/item/storage/internal/modular/medical - max_storage_space = 30 - storage_slots = 5 - max_w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/stack/medical, - /obj/item/reagent_containers/hypospray, - /obj/item/reagent_containers/hypospray/advanced, - /obj/item/reagent_containers/hypospray/autoinjector, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/pill, - /obj/item/storage/syringe_case, - /obj/item/roller/medevac, - /obj/item/roller, - /obj/item/bodybag, - /obj/item/storage/pill_bottle, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/gloves/latex, - /obj/item/tweezers, - /obj/item/tweezers_advanced, - /obj/item/whistle, - ) +/obj/item/armor_module/storage/medical/freelancer/PopulateContents() + new /obj/item/stack/medical/heal_pack/advanced/bruise_pack(src) + new /obj/item/stack/medical/heal_pack/advanced/burn_pack(src) + new /obj/item/storage/pill_bottle/meralyne(src) + new /obj/item/storage/pill_bottle/dermaline(src) + new /obj/item/storage/pill_bottle/tramadol(src) /obj/item/armor_module/storage/medical/som name = "Medical Storage module" @@ -341,98 +127,38 @@ name = "Injector Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Can hold a substantial variety of injectors." icon_state = "mod_injector_bag" - storage = /obj/item/storage/internal/modular/injector - -/obj/item/storage/internal/modular/injector - max_storage_space = 10 - storage_slots = 10 - max_w_class = WEIGHT_CLASS_TINY - can_hold = list( - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/hypospray/autoinjector, - ) + storage_type = /datum/storage/internal/injector /obj/item/armor_module/storage/integrated name = "IS Pattern Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Impedes movement somewhat, but holds about as much as a satchel could." icon_state = "mod_is_bag" - storage = /obj/item/storage/internal/modular/integrated + storage_type = /datum/storage/internal/integrated slowdown = 0.2 -/obj/item/storage/internal/modular/integrated - bypass_w_limit = list() - storage_slots = null - max_storage_space = 15 - max_w_class = WEIGHT_CLASS_NORMAL - /obj/item/armor_module/storage/grenade name = "Grenade Storage module" desc = "Designed for mounting on the Jaeger Combat Exoskeleton. Can hold a respectable amount of grenades." icon_state = "mod_grenade_harness" - storage = /obj/item/storage/internal/modular/grenade - -/obj/item/storage/internal/modular/grenade - max_storage_space = 12 - storage_slots = 6 - max_w_class = WEIGHT_CLASS_SMALL - can_hold = list( - /obj/item/explosive/grenade, - /obj/item/reagent_containers/food/drinks/cans, - ) + storage_type = /datum/storage/internal/grenade /obj/item/armor_module/storage/boot name = "boot storage module" desc = "A small set of straps to hold something in your boot." icon_state = "" - storage = /obj/item/storage/internal/shoes/boot_knife + storage_type = /datum/storage/internal/shoes/boot_knife attach_features_flags = ATTACH_APPLY_ON_MOB -/obj/item/storage/internal/shoes/boot_knife - max_storage_space = 3 - storage_slots = 1 - draw_mode = TRUE - can_hold = list( - /obj/item/weapon/combat_knife, - /obj/item/weapon/gun/pistol/standard_pocketpistol, - /obj/item/weapon/gun/shotgun/double/derringer, - /obj/item/attachable/bayonetknife, - /obj/item/attachable/bayonetknife/som, - /obj/item/stack/throwing_knife, - /obj/item/storage/box/MRE, - ) +/obj/item/armor_module/storage/boot/full/PopulateContents() + new /obj/item/weapon/combat_knife(src) -/obj/item/armor_module/storage/boot/full/Initialize(mapload) - . = ..() - new /obj/item/weapon/combat_knife(storage) - -/obj/item/armor_module/storage/boot/som_knife/Initialize(mapload) - . = ..() - new /obj/item/attachable/bayonetknife/som(storage) +/obj/item/armor_module/storage/boot/som_knife/PopulateContents() + new /obj/item/attachable/bayonetknife/som(src) /obj/item/armor_module/storage/helmet name = "Jaeger Pattern helmet storage" desc = "A small set of bands and straps to allow easy storage of small items." icon_state = "" - storage = /obj/item/storage/internal/marinehelmet + storage_type = /datum/storage/internal/marinehelmet show_storage = TRUE attach_features_flags = NONE - -/obj/item/storage/internal/marinehelmet - max_storage_space = 3 - storage_slots = 2 - max_w_class = WEIGHT_CLASS_TINY - bypass_w_limit = list( - /obj/item/clothing/glasses, - /obj/item/reagent_containers/food/snacks, - /obj/item/stack/medical/heal_pack/gauze, - /obj/item/stack/medical/heal_pack/ointment, - /obj/item/ammo_magazine/handful, - ) - cant_hold = list( - /obj/item/stack/sheet, - /obj/item/stack/catwalk, - /obj/item/stack/rods, - /obj/item/stack/sandbags_empty, - /obj/item/stack/tile, - /obj/item/stack/cable_coil, - ) diff --git a/code/modules/clothing/modular_armor/attachments/uniform.dm b/code/modules/clothing/modular_armor/attachments/uniform.dm index f31e311f38c8b..58c833bde4430 100644 --- a/code/modules/clothing/modular_armor/attachments/uniform.dm +++ b/code/modules/clothing/modular_armor/attachments/uniform.dm @@ -12,94 +12,33 @@ name = "webbing" desc = "A sturdy mess of synthcotton belts and buckles, ready to share your burden." icon_state = "webbing" - storage = /obj/item/storage/internal/webbing - -/obj/item/storage/internal/webbing - max_w_class = WEIGHT_CLASS_SMALL - storage_slots = 3 - bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - /obj/item/cell/lasgun, - ) - cant_hold = list( - /obj/item/stack/razorwire, - /obj/item/stack/sheet, - /obj/item/stack/sandbags, - /obj/item/stack/snow, - /obj/item/cell/lasgun/volkite/powerpack, - ) + storage_type = /datum/storage/internal/webbing /obj/item/armor_module/storage/uniform/black_vest name = "black webbing vest" desc = "Robust black synthcotton vest with lots of pockets to hold whatever you need, but cannot hold in hands." icon_state = "vest_black" - storage = /obj/item/storage/internal/vest - -/obj/item/storage/internal/vest - storage_slots = 5 - max_w_class = WEIGHT_CLASS_SMALL - cant_hold = list( - /obj/item/stack/razorwire, - /obj/item/stack/sheet, - /obj/item/stack/sandbags, - /obj/item/stack/snow, - ) + storage_type = /datum/storage/internal/vest /obj/item/armor_module/storage/uniform/brown_vest name = "brown webbing vest" desc = "Worn brownish synthcotton vest with lots of pockets to unload your hands." icon_state = "vest_brown" - storage = /obj/item/storage/internal/vest + storage_type = /datum/storage/internal/vest /obj/item/armor_module/storage/uniform/white_vest name = "white webbing vest" desc = "A clean white Nylon vest with large pockets specially designed for medical supplies" icon_state = "vest_white" - storage = /obj/item/storage/internal/white_vest - -/obj/item/storage/internal/white_vest - max_w_class = WEIGHT_CLASS_BULKY - storage_slots = 6 //one more than the brown webbing but you lose out on being able to hold non-medic stuff - max_storage_space = 24 - can_hold = list( - /obj/item/healthanalyzer, - /obj/item/stack/medical, - /obj/item/reagent_containers/hypospray, - /obj/item/reagent_containers/hypospray/advanced, - /obj/item/reagent_containers/hypospray/autoinjector, - /obj/item/reagent_containers/glass/bottle, - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/pill, - /obj/item/storage/pill_bottle, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/gloves/latex, - /obj/item/tweezers, - /obj/item/tweezers_advanced, - /obj/item/bodybag, - /obj/item/roller, - /obj/item/whistle, - ) + storage_type = /datum/storage/internal/white_vest /obj/item/armor_module/storage/uniform/surgery_webbing name = "surgical webbing" desc = "A clean white Nylon webbing composed of many straps and pockets to hold surgical tools." icon_state = "webbing_white" - storage = /obj/item/storage/internal/surgery_webbing + storage_type = /datum/storage/internal/surgery_webbing -/obj/item/storage/internal/surgery_webbing - storage_slots = 12 - max_storage_space = 24 - can_hold = list( - /obj/item/tool/surgery, - /obj/item/stack/nanopaste, - /obj/item/tweezers, - /obj/item/tweezers_advanced, - ) - -/obj/item/storage/internal/surgery_webbing/Initialize(mapload) - . = ..() +/obj/item/armor_module/storage/uniform/surgery_webbing/PopulateContents() new /obj/item/tool/surgery/scalpel/manager(src) new /obj/item/tool/surgery/scalpel(src) new /obj/item/tool/surgery/hemostat(src) @@ -116,49 +55,31 @@ name = "shoulder holster" desc = "A handgun holster" icon_state = "holster" - storage = /obj/item/storage/internal/holster - -/obj/item/armor_module/storage/uniform/holster/freelancer/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/pistol/g22(storage) - new /obj/item/ammo_magazine/pistol/g22(storage) - new /obj/item/ammo_magazine/pistol/g22(storage) - new /obj/item/weapon/gun/pistol/g22(storage) - -/obj/item/armor_module/storage/uniform/holster/vp/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/pistol/vp70(storage) - new /obj/item/ammo_magazine/pistol/vp70(storage) - new /obj/item/ammo_magazine/pistol/vp70(storage) - new /obj/item/weapon/gun/pistol/vp70(storage) - -/obj/item/armor_module/storage/uniform/holster/highpower/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/pistol/highpower(storage) - new /obj/item/ammo_magazine/pistol/highpower(storage) - new /obj/item/ammo_magazine/pistol/highpower(storage) - new /obj/item/weapon/gun/pistol/highpower(storage) - -/obj/item/armor_module/storage/uniform/holster/deathsquad/Initialize(mapload) - . = ..() - new /obj/item/ammo_magazine/revolver/mateba(storage) - new /obj/item/ammo_magazine/revolver/mateba(storage) - new /obj/item/ammo_magazine/revolver/mateba(storage) - new /obj/item/weapon/gun/revolver/mateba(storage) - -/obj/item/storage/internal/holster - storage_slots = 4 - max_storage_space = 10 - max_w_class = WEIGHT_CLASS_BULKY - storage_type_limits = list(/obj/item/weapon/gun = 1) - can_hold = list( - /obj/item/weapon/gun/pistol, - /obj/item/ammo_magazine/pistol, - /obj/item/weapon/gun/revolver, - /obj/item/ammo_magazine/revolver, - /obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol, - /obj/item/cell/lasgun/lasrifle, - ) + storage_type = /datum/storage/internal/holster + +/obj/item/armor_module/storage/uniform/holster/freelancer/PopulateContents() + new /obj/item/ammo_magazine/pistol/g22(src) + new /obj/item/ammo_magazine/pistol/g22(src) + new /obj/item/ammo_magazine/pistol/g22(src) + new /obj/item/weapon/gun/pistol/g22(src) + +/obj/item/armor_module/storage/uniform/holster/vp/PopulateContents() + new /obj/item/ammo_magazine/pistol/vp70(src) + new /obj/item/ammo_magazine/pistol/vp70(src) + new /obj/item/ammo_magazine/pistol/vp70(src) + new /obj/item/weapon/gun/pistol/vp70(src) + +/obj/item/armor_module/storage/uniform/holster/highpower/PopulateContents() + new /obj/item/ammo_magazine/pistol/highpower(src) + new /obj/item/ammo_magazine/pistol/highpower(src) + new /obj/item/ammo_magazine/pistol/highpower(src) + new /obj/item/weapon/gun/pistol/highpower(src) + +/obj/item/armor_module/storage/uniform/holster/deathsquad/PopulateContents() + new /obj/item/ammo_magazine/revolver/mateba(src) + new /obj/item/ammo_magazine/revolver/mateba(src) + new /obj/item/ammo_magazine/revolver/mateba(src) + new /obj/item/weapon/gun/revolver/mateba(src) /obj/item/armor_module/storage/uniform/holster/armpit name = "shoulder holster" diff --git a/code/modules/clothing/modular_armor/attachments/visors.dm b/code/modules/clothing/modular_armor/attachments/visors.dm index 6e4c502be38a7..682b4e4083ceb 100644 --- a/code/modules/clothing/modular_armor/attachments/visors.dm +++ b/code/modules/clothing/modular_armor/attachments/visors.dm @@ -92,6 +92,18 @@ icon_state = "trooper_visor" colorable_allowed = COLOR_WHEEL_ALLOWED|PRESET_COLORS_ALLOWED +/obj/item/armor_module/armor/visor/marine/mjolnir + name = "\improper Jaeger Pattern Mjolnir visor" + desc = "The visor attachment of the Jaeger modular helmets. This one is designed for the Mjolnir class of helmet." + icon_state = "mjolnir_visor" + colorable_allowed = COLOR_WHEEL_ALLOWED|PRESET_COLORS_ALLOWED + +/obj/item/armor_module/armor/visor/marine/mjolnir_open + name = "\improper Jaeger Pattern Open Mjolnir visor" + desc = "The visor attachment of the Jaeger modular helmets. This one is designed for the Mjolnir class of helmet." + icon_state = "mjolnir_open_visor" + colorable_allowed = COLOR_WHEEL_ALLOWED|PRESET_COLORS_ALLOWED + /obj/item/armor_module/armor/visor/marine/eva name = "\improper Jaeger Pattern EVA visor" desc = "The visor attachment of the Jaeger modular helmets. This one is designed for the EVA class of helmet." diff --git a/code/modules/clothing/modular_armor/jaeger.dm b/code/modules/clothing/modular_armor/jaeger.dm index c746f653ea22d..713480a309d41 100644 --- a/code/modules/clothing/modular_armor/jaeger.dm +++ b/code/modules/clothing/modular_armor/jaeger.dm @@ -142,6 +142,7 @@ /obj/item/armor_module/armor/visor/marine/helljumper, /obj/item/armor_module/armor/visor/marine/ranger, /obj/item/armor_module/armor/visor/marine/traditional, + /obj/item/armor_module/armor/visor/marine/mjolnir_open, /obj/item/armor_module/armor/visor/marine/trooper, /obj/item/armor_module/armor/visor/marine/fourvisor, /obj/item/armor_module/armor/visor/marine/foureyevisor, @@ -217,6 +218,12 @@ starting_attachments = list(/obj/item/armor_module/armor/visor/marine/trooper, /obj/item/armor_module/storage/helmet) greyscale_config = /datum/greyscale_config/armor_mk2/trooper +/obj/item/clothing/head/modular/marine/mjolnir_open + name = "Jaeger Mk.I Pattern Open Mjolnir Helmet" + desc = "Usually paired with the Jaeger Combat Exoskeleton. Can mount utility functions on the helmet hard points. Has Mjolnir markings but explosing the lower jaw." + starting_attachments = list(/obj/item/armor_module/armor/visor/marine/mjolnir_open, /obj/item/armor_module/storage/helmet) + greyscale_config = /datum/greyscale_config/armor_mk2/mjolnir_open + // Hardsuit Helmets /obj/item/clothing/head/modular/marine/hardsuit_helm diff --git a/code/modules/clothing/modular_armor/mark_one.dm b/code/modules/clothing/modular_armor/mark_one.dm index 4a28b2397b49f..6374fa2f98d59 100644 --- a/code/modules/clothing/modular_armor/mark_one.dm +++ b/code/modules/clothing/modular_armor/mark_one.dm @@ -30,6 +30,7 @@ /obj/item/armor_module/armor/visor/marine/old/eva/skull, /obj/item/armor_module/armor/visor/marine/old/eod, /obj/item/armor_module/armor/visor/marine/old/assault, + /obj/item/armor_module/armor/visor/marine/mjolnir, /obj/item/armor_module/module/fire_proof_helmet, ) @@ -78,6 +79,12 @@ /obj/item/clothing/head/modular/marine/old/eod name = "Jaeger Mk.I Pattern EOD Helmet" - desc = "Usually paired with the Jaeger Combat Exoskeleton. Can mount utility functions on the helmet hard points. Has EOD markings" + desc = "Usually paired with the Jaeger Combat Exoskeleton. Can mount utility functions on the helmet hard points. Has EOD markings." starting_attachments = list(/obj/item/armor_module/armor/visor/marine/old/eod, /obj/item/armor_module/storage/helmet) greyscale_config = /datum/greyscale_config/armor_mk1/eod + +/obj/item/clothing/head/modular/marine/old/mjolnir + name = "Jaeger Mk.I Pattern Mjolnir Helmet" + desc = "Usually paired with the Jaeger Combat Exoskeleton. Can mount utility functions on the helmet hard points. Has Mjolnir markings." + starting_attachments = list(/obj/item/armor_module/armor/visor/marine/mjolnir, /obj/item/armor_module/storage/helmet) + greyscale_config = /datum/greyscale_config/armor_mk1/mjolnir diff --git a/code/modules/clothing/modular_armor/modular.dm b/code/modules/clothing/modular_armor/modular.dm index 3d02719c9f73e..ff4672f1e0310 100644 --- a/code/modules/clothing/modular_armor/modular.dm +++ b/code/modules/clothing/modular_armor/modular.dm @@ -93,6 +93,9 @@ /obj/item/armor_module/armor/legs/marine/ranger, /obj/item/armor_module/armor/arms/marine/ranger, + /obj/item/armor_module/armor/chest/marine/mjolnir, + /obj/item/armor_module/armor/legs/marine/mjolnir, + /obj/item/armor_module/armor/arms/marine/mjolnir, /obj/item/armor_module/module/better_shoulder_lamp, /obj/item/armor_module/module/valkyrie_autodoc, @@ -132,7 +135,7 @@ var/obj/item/armor_module/storage/storage_module = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] if(!storage_module.show_storage) return standing - for(var/obj/item/stored AS in storage_module.storage.contents) + for(var/obj/item/stored AS in storage_module.contents) standing.overlays += mutable_appearance(storage_module.show_storage_icon, icon_state = initial(stored.icon_state)) return standing @@ -345,7 +348,7 @@ if(attachments_by_slot[ATTACHMENT_SLOT_STORAGE] && istype(attachments_by_slot[ATTACHMENT_SLOT_STORAGE], /obj/item/armor_module/storage)) var/obj/item/armor_module/storage/storage_module = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] if(storage_module.show_storage) - for(var/obj/item/stored AS in storage_module.storage.contents) + for(var/obj/item/stored AS in storage_module.contents) if(istype(stored, /obj/item/ammo_magazine/handful)) standing.overlays += mutable_appearance(storage_module.show_storage_icon, icon_state = stored.icon_state, layer = COLLAR_LAYER) else @@ -356,11 +359,7 @@ standing.pixel_y = visorless_offset_y return standing -/obj/item/clothing/head/modular/on_pocket_insertion() - . = ..() - update_clothing_icon() - -/obj/item/clothing/head/modular/on_pocket_removal() +/obj/item/clothing/head/modular/update_icon(updates) . = ..() update_clothing_icon() diff --git a/code/modules/clothing/shoes/marine_shoes.dm b/code/modules/clothing/shoes/marine_shoes.dm index aa3a304f868c6..9f6129a0653c6 100644 --- a/code/modules/clothing/shoes/marine_shoes.dm +++ b/code/modules/clothing/shoes/marine_shoes.dm @@ -33,7 +33,7 @@ if(!istype(attachments_by_slot[ATTACHMENT_SLOT_STORAGE], /obj/item/armor_module/storage)) return var/obj/item/armor_module/storage/armor_storage = attachments_by_slot[ATTACHMENT_SLOT_STORAGE] - for(var/atom/item_in_pocket AS in armor_storage.storage.contents) + for(var/atom/item_in_pocket AS in armor_storage.contents) if(istype(item_in_pocket, /obj/item/weapon/combat_knife) || istype(item_in_pocket, /obj/item/attachable/bayonetknife) || istype(item_in_pocket, /obj/item/stack/throwing_knife)) icon_state += "-knife" diff --git a/code/modules/clothing/under/under.dm b/code/modules/clothing/under/under.dm index e81a0f541e092..04422f9ed0609 100644 --- a/code/modules/clothing/under/under.dm +++ b/code/modules/clothing/under/under.dm @@ -112,25 +112,6 @@ else return ..() -/obj/item/clothing/under/MouseDrop(obj/over_object as obj) - if(!ishuman(usr)) - return - //makes sure that the clothing is equipped so that we can't drag it into our hand from miles away. - if(HAS_TRAIT(src, TRAIT_NODROP) || loc != usr) - return - if(usr.incapacitated() || usr.buckled || usr.lying_angle) - return - if(!over_object) - return - switch(over_object.name) - if("r_hand") - usr.dropItemToGround(src) - usr.put_in_r_hand(src) - if("l_hand") - usr.dropItemToGround(src) - usr.put_in_l_hand(src) - - /obj/item/clothing/under/examine(mob/user) . = ..() if(!has_sensor) @@ -162,14 +143,6 @@ . += " It has the following attachments:" . += armor_info -//we only want to quick equip from actual 'holster' type webbings -/obj/item/clothing/under/do_quick_equip(mob/user) - for(var/attachment_slot in attachments_by_slot) - if(istype(attachments_by_slot[attachment_slot], /obj/item/armor_module/storage/uniform/holster)) - var/obj/item/armor_module/storage/storage_attachment = attachments_by_slot[attachment_slot] - return storage_attachment.storage.do_quick_equip(user) - return src - /obj/item/clothing/under/proc/set_sensors(mob/living/user) if (!istype(user)) return diff --git a/code/modules/codex/entries/clothing_codex.dm b/code/modules/codex/entries/clothing_codex.dm index aff9924b86990..6363b93b74262 100644 --- a/code/modules/codex/entries/clothing_codex.dm +++ b/code/modules/codex/entries/clothing_codex.dm @@ -114,10 +114,10 @@ GLOBAL_LIST_INIT(string_equip_flags, list("suit slot" = ITEM_SLOT_OCLOTHING, /obj/item/armor_module/storage/uniform/get_mechanics_info() . = ..() - . += "
This item has an internal inventory of [storage.storage_slots] slots." - if(length(storage.bypass_w_limit)) + . += "
This item has an internal inventory of [storage_datum.storage_slots] slots." + if(length(storage_datum.storage_type_limits)) . += "

You can also carry the following special items in this:" - for(var/X in storage.bypass_w_limit) + for(var/X in storage_datum.storage_type_limits) var/obj/B = X . += "
[initial(B.name)]" diff --git a/code/modules/codex/entries/misc_codex.dm b/code/modules/codex/entries/misc_codex.dm index 36a6c41bb01ed..63d7bfc536f1b 100644 --- a/code/modules/codex/entries/misc_codex.dm +++ b/code/modules/codex/entries/misc_codex.dm @@ -26,33 +26,33 @@ if(length(slots)) storage_strings += "It can be worn on your [english_list(slots)]." - if(use_to_pickup) + if(storage_datum.use_to_pickup) storage_strings += "It can be used to pickup objects." - if(storage_slots) - storage_strings += "It has [storage_slots] spaces for inventory." + if(storage_datum.storage_slots) + storage_strings += "It has [storage_datum.storage_slots] spaces for inventory." - if(max_storage_space) - storage_strings += "It can carry [max_storage_space] weight of stuff." + if(storage_datum.max_storage_space) + storage_strings += "It can carry [storage_datum.max_storage_space] weight of stuff." - if(max_w_class && !length(can_hold)) - storage_strings += "It can carry weight [max_w_class] things or lighter." + if(storage_datum.max_w_class && !length(storage_datum.can_hold)) + storage_strings += "It can carry weight [storage_datum.max_w_class] things or lighter." - if(length(can_hold)) + if(length(storage_datum.can_hold)) storage_strings += "
You can only carry the following in this:" - for(var/X in can_hold) + for(var/X in storage_datum.can_hold) var/obj/item/A = X storage_strings += "[initial(A.name)]" - if(length(bypass_w_limit)) + if(length(storage_datum.storage_type_limits)) storage_strings += "
You can also carry the following special items in this:" - for(var/X in bypass_w_limit) + for(var/X in storage_datum.storage_type_limits) var/obj/item/A = X storage_strings += "[initial(A.name)]" - if(length(cant_hold)) + if(length(storage_datum.cant_hold)) storage_strings += "
You can specifically not carry these things in this:" - for(var/X in cant_hold) + for(var/X in storage_datum.cant_hold) var/obj/item/A = X storage_strings += "[initial(A.name)]" diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 4eb4bb631ccb0..a3eb665e9459d 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -23,8 +23,8 @@ return else //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. - if(istype(I.loc,/obj/item/storage)) //in a container. - var/sdepth = I.storage_depth(user) + if(I.item_flags & IN_STORAGE) //in a container. + var/sdepth = I.storage_datum.storage_depth(user) if (sdepth == -1 || sdepth > 1) return //too deeply nested to access diff --git a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm index f40a51729fa0d..c331028706513 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm @@ -111,7 +111,7 @@ for(var/obj/item/griddled_item AS in griddled_objects) if(SEND_SIGNAL(griddled_item, COMSIG_ITEM_GRILLED, src, delta_time) & COMPONENT_HANDLED_GRILLING) continue - griddled_item.fire_act(1000) //Hot hot hot! + griddled_item.fire_act(40) if(prob(10)) visible_message(span_danger("[griddled_item] doesn't seem to be doing too great on the [src]!")) diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index b6f736c300f1d..15c6b8bb0859b 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -595,9 +595,9 @@ attack_hand(user) for(var/obj/item/reagent_containers/food/snacks/grown/G in user.loc) - if(!S.can_be_inserted(G)) + if(!S.storage_datum.can_be_inserted(G, user)) return - S.handle_item_insertion(G, TRUE, user) + S.storage_datum.handle_item_insertion(G, TRUE, user) else if(istype(I, /obj/item/tool/plantspray)) var/obj/item/tool/plantspray/spray = I diff --git a/code/modules/hydroponics/vines.dm b/code/modules/hydroponics/vines.dm index ebc6f9b6d531c..157755f12a2de 100644 --- a/code/modules/hydroponics/vines.dm +++ b/code/modules/hydroponics/vines.dm @@ -214,7 +214,7 @@ // Hotspots kill vines. -/obj/effect/plantsegment/fire_act(null, temp, volume) +/obj/effect/plantsegment/fire_act(burn_level) qdel(src) /obj/effect/plantsegment/proc/die() @@ -245,10 +245,6 @@ die() return - -/obj/effect/plantsegment/flamer_fire_act(burnlevel) - qdel(src) - /obj/effect/plant_controller //What this does is that instead of having the grow minimum of 1, required to start growing, the minimum will be 0, diff --git a/code/modules/lighting/lighting_mask/lighting_mask.dm b/code/modules/lighting/lighting_mask/lighting_mask.dm index 6eb5707aafda2..847ccb6443ec6 100644 --- a/code/modules/lighting/lighting_mask/lighting_mask.dm +++ b/code/modules/lighting/lighting_mask/lighting_mask.dm @@ -147,7 +147,7 @@ /atom/movable/lighting_mask/ex_act(severity, target) return -/atom/movable/lighting_mask/fire_act(exposed_temperature, exposed_volume) +/atom/movable/lighting_mask/fire_act(burn_level) return #undef LIGHTING_MASK_SPRITE_SIZE diff --git a/code/modules/logging/log_holder.dm b/code/modules/logging/log_holder.dm index 36c7ff8e99ad5..6c9e24c755eb7 100644 --- a/code/modules/logging/log_holder.dm +++ b/code/modules/logging/log_holder.dm @@ -309,7 +309,7 @@ GENERAL_PROTECT_DATUM(/datum/log_holder) var/datum/data = data_list[key] if(isnull(data)) - // do nothing - nulls are allowed + EMPTY_BLOCK_GUARD // todo this is probably a bad way to do it else if(islist(data)) data = recursive_jsonify(data, semvers) diff --git a/code/modules/mapping/merge_conflicts.dm b/code/modules/mapping/merge_conflicts.dm new file mode 100644 index 0000000000000..786fed9a2e971 --- /dev/null +++ b/code/modules/mapping/merge_conflicts.dm @@ -0,0 +1,18 @@ +// Used by mapmerge2 to denote the existence of a merge conflict (or when it has to complete a "best intent" merge where it dumps the movable contents of an old key and a new key on the same tile). +// We define it explicitly here to ensure that it shows up on the highest possible plane (while giving off a verbose icon) to aide mappers in resolving these conflicts. +// DO NOT USE THIS IN NORMAL MAPPING!!! Linters WILL fail. + +/obj/merge_conflict_marker + name = "Merge Conflict Marker - DO NOT USE" + icon = 'icons/effects/mapping_helpers.dmi' + icon_state = "merge_conflict_marker" + desc = "If you are seeing this in-game: someone REALLY, REALLY, REALLY fucked up. They physically mapped in a fucking Merge Conflict Marker. What the shit." + plane = SPLASHSCREEN_PLANE + +///We REALLY do not want un-addressed merge conflicts in maps for an inexhaustible list of reasons. This should help ensure that this will not be missed in case linters fail to catch it for any reason what-so-ever. +/obj/merge_conflict_marker/Initialize(mapload) + . = ..() + var/msg = "HEY, LISTEN!!! Merge Conflict Marker detected at [AREACOORD(src)]! Please manually address all potential merge conflicts!!!" + log_mapping(msg) + to_chat(world, span_boldannounce("[msg]")) + warning(msg) diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm deleted file mode 100644 index 04d57a686ed5f..0000000000000 --- a/code/modules/mapping/ruins.dm +++ /dev/null @@ -1,135 +0,0 @@ -/datum/map_template/ruin/proc/try_to_place(z,allowed_areas) - var/sanity = PLACEMENT_TRIES - while(sanity > 0) - sanity-- - var/width_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(width / 2) - var/height_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(height / 2) - var/turf/central_turf = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z) - var/valid = TRUE - - for(var/turf/check in get_affected_turfs(central_turf,1)) - var/area/new_area = get_area(check) - if(!(istype(new_area, allowed_areas)) || check.flags_1 & NO_RUINS_1) - valid = FALSE - break - - if(!valid) - continue - - testing("Ruin \"[name]\" placed at ([central_turf.x], [central_turf.y], [central_turf.z])") - - for(var/i in get_affected_turfs(central_turf, 1)) - var/turf/T = i - for(var/mob/living/simple_animal/monster in T) - qdel(monster) - for(var/obj/structure/flora/ash/plant in T) - qdel(plant) - - load(central_turf,centered = TRUE) - loaded++ - - for(var/turf/T in get_affected_turfs(central_turf, 1)) - T.flags_1 |= NO_RUINS_1 - - new /obj/effect/landmark/ruin(central_turf, src) - return TRUE - return FALSE - - -/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins) - if(!z_levels || !length(z_levels)) - WARNING("No Z levels provided - Not generating ruins") - return - - for(var/zl in z_levels) - var/turf/T = locate(1, 1, zl) - if(!T) - WARNING("Z level [zl] does not exist - Not generating ruins") - return - - var/list/ruins = potentialRuins.Copy() - - var/list/forced_ruins = list() //These go first on the z level associated (same random one by default) - var/list/ruins_availible = list() //we can try these in the current pass - var/forced_z //If set we won't pick z level and use this one instead. - - //Set up the starting ruin list - for(var/key in ruins) - var/datum/map_template/ruin/R = ruins[key] - if(R.cost > budget) //Why would you do that - continue - if(R.always_place) - forced_ruins[R] = -1 - if(R.unpickable) - continue - ruins_availible[R] = R.placement_weight - - while(budget > 0 && (length(ruins_availible) || length(forced_ruins))) - var/datum/map_template/ruin/current_pick - var/forced = FALSE - if(length(forced_ruins)) //We have something we need to load right now, so just pick it - for(var/ruin in forced_ruins) - current_pick = ruin - if(forced_ruins[ruin] > 0) //Load into designated z - forced_z = forced_ruins[ruin] - forced = TRUE - break - else //Otherwise just pick random one - current_pick = pickweight(ruins_availible) - - var/placement_tries = PLACEMENT_TRIES - var/failed_to_place = TRUE - var/z_placed = 0 - while(placement_tries > 0) - placement_tries-- - z_placed = pick(z_levels) - if(!current_pick.try_to_place(forced_z ? forced_z : z_placed,whitelist)) - continue - else - failed_to_place = FALSE - break - - //That's done remove from priority even if it failed - if(forced) - //TODO : handle forced ruins with multiple variants - forced_ruins -= current_pick - forced = FALSE - - if(failed_to_place) - for(var/datum/map_template/ruin/R in ruins_availible) - if(R.id == current_pick.id) - ruins_availible -= R - log_world("Failed to place [current_pick.name] ruin.") - else - budget -= current_pick.cost - if(!current_pick.allow_duplicates) - for(var/datum/map_template/ruin/R in ruins_availible) - if(R.id == current_pick.id) - ruins_availible -= R - if(current_pick.never_spawn_with) - for(var/blacklisted_type in current_pick.never_spawn_with) - for(var/possible_exclusion in ruins_availible) - if(istype(possible_exclusion,blacklisted_type)) - ruins_availible -= possible_exclusion - if(current_pick.always_spawn_with) - for(var/v in current_pick.always_spawn_with) - for(var/ruin_name in SSmapping.ruins_templates) //Because we might want to add space templates as linked of lava templates. - var/datum/map_template/ruin/linked = SSmapping.ruins_templates[ruin_name] //why are these assoc, very annoying. - if(istype(linked,v)) - switch(current_pick.always_spawn_with[v]) - if(PLACE_SAME_Z) - forced_ruins[linked] = forced_z ? forced_z : z_placed //I guess you might want a chain somehow - if(PLACE_LAVA_RUIN) - forced_ruins[linked] = pick(SSmapping.levels_by_trait(ZTRAIT_LAVA_RUINS)) - if(PLACE_SPACE_RUIN) - forced_ruins[linked] = pick(SSmapping.levels_by_trait(ZTRAIT_SPACE_RUINS)) - if(PLACE_DEFAULT) - forced_ruins[linked] = -1 - forced_z = 0 - - //Update the availible list - for(var/datum/map_template/ruin/R in ruins_availible) - if(R.cost > budget) - ruins_availible -= R - - log_world("Ruin loader finished with [budget] left to spend.") diff --git a/code/modules/mapping/space_management/space_transition.dm b/code/modules/mapping/space_management/space_transition.dm deleted file mode 100644 index 18ea3f3704a47..0000000000000 --- a/code/modules/mapping/space_management/space_transition.dm +++ /dev/null @@ -1,143 +0,0 @@ -/datum/space_level/proc/set_linkage(new_linkage) - linkage = new_linkage - if(linkage == SELFLOOPING) - neigbours = list(TEXT_NORTH,TEXT_SOUTH,TEXT_EAST,TEXT_WEST) - for(var/A in neigbours) - neigbours[A] = src - -/datum/space_level/proc/set_neigbours(list/L) - for(var/datum/space_transition_point/P in L) - if(P.x == xi) - if(P.y == yi+1) - neigbours[TEXT_NORTH] = P.spl - P.spl.neigbours[TEXT_SOUTH] = src - else if(P.y == yi-1) - neigbours[TEXT_SOUTH] = P.spl - P.spl.neigbours[TEXT_NORTH] = src - else if(P.y == yi) - if(P.x == xi+1) - neigbours[TEXT_EAST] = P.spl - P.spl.neigbours[TEXT_WEST] = src - else if(P.x == xi-1) - neigbours[TEXT_WEST] = P.spl - P.spl.neigbours[TEXT_EAST] = src - -/datum/space_transition_point //this is explicitly utilitarian datum type made specially for the space map generation and are absolutely unusable for anything else - var/list/neigbours = list() - var/x - var/y - var/datum/space_level/spl - -/datum/space_transition_point/New(nx, ny, list/point_grid) - if(!point_grid) - qdel(src) - return - var/list/L = point_grid[1] - if(nx > length(point_grid) || ny > length(L)) - qdel(src) - return - x = nx - y = ny - if(point_grid[x][y]) - return - point_grid[x][y] = src - -/datum/space_transition_point/proc/set_neigbours(list/grid) - var/max_X = grid.len - var/list/max_Y = grid[1] - max_Y = max_Y.len - neigbours.Cut() - if(x+1 <= max_X) - neigbours |= grid[x+1][y] - if(x-1 >= 1) - neigbours |= grid[x-1][y] - if(y+1 <= max_Y) - neigbours |= grid[x][y+1] - if(y-1 >= 1) - neigbours |= grid[x][y-1] - -/datum/controller/subsystem/mapping/proc/setup_map_transitions() //listamania - var/list/SLS = list() - var/list/cached_z_list = z_list - var/conf_set_len = 0 - for(var/A in cached_z_list) - var/datum/space_level/D = A - if (D.linkage == CROSSLINKED) - SLS.Add(D) - conf_set_len++ - var/list/point_grid[conf_set_len*2+1][conf_set_len*2+1] - var/list/grid = list() - var/datum/space_transition_point/P - for(var/i = 1, i<=conf_set_len*2+1, i++) - for(var/j = 1, j<=conf_set_len*2+1, j++) - P = new/datum/space_transition_point(i,j, point_grid) - point_grid[i][j] = P - grid.Add(P) - for(var/datum/space_transition_point/pnt in grid) - pnt.set_neigbours(point_grid) - P = point_grid[conf_set_len+1][conf_set_len+1] - var/list/possible_points = list() - var/list/used_points = list() - grid.Cut() - while(length(SLS)) - var/datum/space_level/D = pick_n_take(SLS) - D.xi = P.x - D.yi = P.y - P.spl = D - possible_points |= P.neigbours - used_points |= P - possible_points.Remove(used_points) - D.set_neigbours(used_points) - P = pick(possible_points) - CHECK_TICK - - //Lists below are pre-calculated values arranged in the list in such a way to be easily accessable in the loop by the counter - //Its either this or madness with lotsa math - - var/list/x_pos_beginning = list(1, 1, world.maxx - TRANSITIONEDGE, 1) //x values of the lowest-leftest turfs of the respective 4 blocks on each side of zlevel - var/list/y_pos_beginning = list(world.maxy - TRANSITIONEDGE, 1, 1 + TRANSITIONEDGE, 1 + TRANSITIONEDGE) //y values respectively - var/list/x_pos_ending = list(world.maxx, world.maxx, world.maxx, 1 + TRANSITIONEDGE) //x values of the highest-rightest turfs of the respective 4 blocks on each side of zlevel - var/list/y_pos_ending = list(world.maxy, 1 + TRANSITIONEDGE, world.maxy - TRANSITIONEDGE, world.maxy - TRANSITIONEDGE) //y values respectively - var/list/x_pos_transition = list(1, 1, TRANSITIONEDGE + 2, world.maxx - TRANSITIONEDGE - 1) //values of x for the transition from respective blocks on the side of zlevel, 1 is being translated into turfs respective x value later in the code - var/list/y_pos_transition = list(TRANSITIONEDGE + 2, world.maxy - TRANSITIONEDGE - 1, 1, 1) //values of y for the transition from respective blocks on the side of zlevel, 1 is being translated into turfs respective y value later in the code - - for(var/I in cached_z_list) - var/datum/space_level/D = I - if(!length(D.neigbours)) - continue - var/zlevelnumber = D.z_value - for(var/side in 1 to 4) - var/turf/beginning = locate(x_pos_beginning[side], y_pos_beginning[side], zlevelnumber) - var/turf/ending = locate(x_pos_ending[side], y_pos_ending[side], zlevelnumber) - var/list/turfblock = block(beginning, ending) - var/dirside = 2**(side-1) - var/zdestination = zlevelnumber - if(D.neigbours["[dirside]"] && D.neigbours["[dirside]"] != D) - D = D.neigbours["[dirside]"] - zdestination = D.z_value - else - dirside = REVERSE_DIR(dirside) - while(D.neigbours["[dirside]"] && D.neigbours["[dirside]"] != D) - D = D.neigbours["[dirside]"] - zdestination = D.z_value - D = I - for(var/turf/open/space/S in turfblock) - S.destination_x = x_pos_transition[side] == 1 ? S.x : x_pos_transition[side] - S.destination_y = y_pos_transition[side] == 1 ? S.y : y_pos_transition[side] - S.destination_z = zdestination - - // Mirage border code - var/mirage_dir - if(S.x == 1 + TRANSITIONEDGE) - mirage_dir |= WEST - else if(S.x == world.maxx - TRANSITIONEDGE) - mirage_dir |= EAST - if(S.y == 1 + TRANSITIONEDGE) - mirage_dir |= SOUTH - else if(S.y == world.maxy - TRANSITIONEDGE) - mirage_dir |= NORTH - if(!mirage_dir) - continue - - var/turf/place = locate(S.destination_x, S.destination_y, S.destination_z) - S.AddComponent(/datum/component/mirage_border, place, mirage_dir) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 0677c646509ec..d3e447cdc6532 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -87,10 +87,11 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) update_icon() - if(!T) + if(!T && length(GLOB.latejoin))// e.g no shipmap spawn during unit tests or admit shittery T = pick(GLOB.latejoin) - abstract_move(T) + if(T) + abstract_move(T) if(!name) name = random_unique_name(gender) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 441f1e442c08a..99d7e09b08f17 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -69,7 +69,7 @@ if(!(temp.limb_status & LIMB_BLEEDING) || temp.limb_status & LIMB_ROBOT) continue blood_max += temp.brute_dam / 60 - if(temp.surgery_open_stage) + if(temp.surgery_open_stage && !(temp.limb_wound_status & LIMB_WOUND_CLAMPED)) blood_max += 0.6 //Yer stomach is cut open if(blood_max) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 1b9cecd9aacc5..afdb633621345 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -207,7 +207,7 @@ user.dropItemToGround(src, TRUE) return src -/mob/living/carbon/fire_act(exposed_temperature, exposed_volume) +/mob/living/carbon/fire_act(burn_level) . = ..() adjust_bodytemperature(100, 0, BODYTEMP_HEAT_DAMAGE_LIMIT_ONE+10) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index a7e9023b66cf2..e29616810abed 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -494,8 +494,9 @@ if(hasHUD(user,"medical")) var/cardcolor = holo_card_color - if(!cardcolor) cardcolor = "none" - msg += "[span_deptradio("Triage holo card:")] \[[cardcolor]\] - " + if(!cardcolor) + cardcolor = "none" + msg += "[span_deptradio("Triage holo card:")] \[[cardcolor]\] | " // scan reports var/datum/data/record/N = null @@ -505,9 +506,9 @@ break if(!isnull(N)) if(!(N.fields["last_scan_time"])) - msg += "[span_deptradio("No scan report on record")]\n" + msg += "[span_deptradio("No body scan report on record")]\n" else - msg += "[span_deptradio("Scan from [N.fields["last_scan_time"]]")]\n" + msg += "[span_deptradio("Body scan from [N.fields["last_scan_time"]]")]\n" if(hasHUD(user,"squadleader")) var/mob/living/carbon/human/H = user diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index b082e0796137c..3a59077c0d7f5 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -27,7 +27,7 @@ return else //store item - if(s_active?.attackby(I, src)) //stored in currently open storage + if(s_active?.on_attackby(s_active, I, src)) //stored in currently open storage return TRUE if(slot_requested) if(equip_to_slot_if_possible(I, slot_requested, FALSE, FALSE, FALSE)) @@ -247,10 +247,10 @@ //This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() //set redraw_mob to 0 if you don't wish the hud to be updated - if you're doing it manually in your own proc. -/mob/living/carbon/human/equip_to_slot(obj/item/W, slot, bitslot = FALSE) +/mob/living/carbon/human/equip_to_slot(obj/item/item_to_equip, slot, bitslot = FALSE) if(!slot) return - if(!istype(W)) + if(!istype(item_to_equip)) return if(bitslot) var/oldslot = slot @@ -258,74 +258,74 @@ if(!has_limb_for_slot(slot)) return - if(W == l_hand) + if(item_to_equip == l_hand) l_hand = null - W.unequipped(src, SLOT_L_HAND) + item_to_equip.unequipped(src, SLOT_L_HAND) update_inv_l_hand() - else if(W == r_hand) + else if(item_to_equip == r_hand) r_hand = null - W.unequipped(src, SLOT_R_HAND) + item_to_equip.unequipped(src, SLOT_R_HAND) update_inv_r_hand() //removes item's actions, may be readded once re-equipped to the new slot - for(var/datum/action/A AS in W.actions) + for(var/datum/action/A AS in item_to_equip.actions) A.remove_action(src) - W.screen_loc = null - W.loc = src - W.layer = ABOVE_HUD_LAYER - W.plane = ABOVE_HUD_PLANE + item_to_equip.screen_loc = null + item_to_equip.loc = src + item_to_equip.layer = ABOVE_HUD_LAYER + item_to_equip.plane = ABOVE_HUD_PLANE - W.forceMove(src) + item_to_equip.forceMove(src) var/obj/item/selected_slot //the item in the specific slot we're trying to insert into, if applicable switch(slot) if(SLOT_BACK) - back = W - W.equipped(src, slot) + back = item_to_equip + item_to_equip.equipped(src, slot) update_inv_back() if(SLOT_WEAR_MASK) - wear_mask = W - W.equipped(src, slot) - wear_mask_update(W, TRUE) + wear_mask = item_to_equip + item_to_equip.equipped(src, slot) + wear_mask_update(item_to_equip, TRUE) if(SLOT_HANDCUFFED) - update_handcuffed(W) + update_handcuffed(item_to_equip) if(SLOT_L_HAND) - l_hand = W - W.equipped(src, slot) + l_hand = item_to_equip + item_to_equip.equipped(src, slot) update_inv_l_hand() if(SLOT_R_HAND) - r_hand = W - W.equipped(src, slot) + r_hand = item_to_equip + item_to_equip.equipped(src, slot) update_inv_r_hand() if(SLOT_BELT) - belt = W - W.equipped(src, slot) + belt = item_to_equip + item_to_equip.equipped(src, slot) update_inv_belt() if(SLOT_WEAR_ID) - wear_id = W - W.equipped(src, slot) + wear_id = item_to_equip + item_to_equip.equipped(src, slot) update_inv_wear_id() name = get_visible_name() if(SLOT_EARS) - wear_ear = W - W.equipped(src, slot) + wear_ear = item_to_equip + item_to_equip.equipped(src, slot) update_inv_ears() if(SLOT_GLASSES) - glasses = W - W.equipped(src, slot) - var/obj/item/clothing/glasses/G = W + glasses = item_to_equip + item_to_equip.equipped(src, slot) + var/obj/item/clothing/glasses/G = item_to_equip if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) update_sight() update_inv_glasses() if(SLOT_GLOVES) - gloves = W - W.equipped(src, slot) + gloves = item_to_equip + item_to_equip.equipped(src, slot) update_inv_gloves() if(SLOT_HEAD) - head = W + head = item_to_equip if(head.inv_hide_flags & HIDEFACE) name = get_visible_name() if(head.inv_hide_flags & (HIDEALLHAIR|HIDETOPHAIR|HIDELOWHAIR|HIDE_EXCESS_HAIR)) @@ -336,37 +336,37 @@ update_inv_wear_mask() if(head.inv_hide_flags & HIDEEYES) update_inv_glasses() - W.equipped(src, slot) + item_to_equip.equipped(src, slot) update_inv_head() if(SLOT_SHOES) - shoes = W - W.equipped(src, slot) + shoes = item_to_equip + item_to_equip.equipped(src, slot) update_inv_shoes() if(SLOT_WEAR_SUIT) - wear_suit = W + wear_suit = item_to_equip if(wear_suit.inv_hide_flags & HIDESHOES) update_inv_shoes() if(wear_suit.inv_hide_flags & HIDEJUMPSUIT) update_inv_w_uniform() if( wear_suit.inv_hide_flags & (HIDEALLHAIR|HIDETOPHAIR|HIDELOWHAIR) ) update_hair() - W.equipped(src, slot) + item_to_equip.equipped(src, slot) update_inv_wear_suit() if(SLOT_W_UNIFORM) - w_uniform = W - W.equipped(src, slot) + w_uniform = item_to_equip + item_to_equip.equipped(src, slot) update_inv_w_uniform() if(SLOT_L_STORE) - l_store = W - W.equipped(src, slot) + l_store = item_to_equip + item_to_equip.equipped(src, slot) update_inv_pockets() if(SLOT_R_STORE) - r_store = W - W.equipped(src, slot) + r_store = item_to_equip + item_to_equip.equipped(src, slot) update_inv_pockets() if(SLOT_S_STORE) - s_store = W - W.equipped(src, slot) + s_store = item_to_equip + item_to_equip.equipped(src, slot) update_inv_s_store() if(SLOT_IN_BOOT) selected_slot = shoes @@ -393,28 +393,29 @@ if(SLOT_IN_ACCESSORY) selected_slot = w_uniform else - CRASH("[src] tried to equip [W] to [slot] in equip_to_slot().") + CRASH("[src] tried to equip [item_to_equip] to [slot] in equip_to_slot().") if(!selected_slot) return FALSE - var/obj/item/storage/storage_item - - if(isstorage(selected_slot)) - storage_item = selected_slot - + var/datum/storage/selected_storage + if(isdatumstorage(selected_slot)) + selected_storage = selected_slot + else if(selected_slot.storage_datum) + selected_storage = selected_slot.storage_datum else if(isclothing(selected_slot)) var/obj/item/clothing/selected_clothing = selected_slot - for(var/attachment_slot in selected_clothing.attachments_by_slot) - if(ismodulararmorstoragemodule(selected_clothing.attachments_by_slot[attachment_slot])) - var/obj/item/armor_module/storage/storage_attachment = selected_clothing.attachments_by_slot[attachment_slot] - storage_item = storage_attachment.storage - break - - if(!storage_item) + for(var/key AS in selected_clothing.attachments_by_slot) + var/atom/attachment = selected_clothing.attachments_by_slot[key] + if(!attachment?.storage_datum) + continue + selected_storage = attachment.storage_datum + break + + if(!selected_storage) return FALSE - return storage_item.handle_item_insertion(W, FALSE, src) + return selected_storage.handle_item_insertion(item_to_equip, FALSE, src) /mob/living/carbon/human/get_item_by_slot(slot_id) switch(slot_id) diff --git a/code/modules/mob/living/carbon/human/species_types/synthetics.dm b/code/modules/mob/living/carbon/human/species_types/synthetics.dm index 159c996e4eb84..3df0e42852b21 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthetics.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthetics.dm @@ -19,7 +19,7 @@ body_temperature = 350 - species_flags = NO_BREATHE|NO_SCAN|NO_BLOOD|NO_POISON|NO_PAIN|IS_SYNTHETIC|NO_CHEM_METABOLIZATION|NO_STAMINA|DETACHABLE_HEAD|HAS_LIPS|HAS_UNDERWEAR|HAS_SKIN_COLOR|ROBOTIC_LIMBS|GREYSCALE_BLOOD + species_flags = NO_BREATHE|NO_BLOOD|NO_POISON|NO_PAIN|IS_SYNTHETIC|NO_CHEM_METABOLIZATION|NO_STAMINA|DETACHABLE_HEAD|HAS_LIPS|HAS_UNDERWEAR|HAS_SKIN_COLOR|ROBOTIC_LIMBS|GREYSCALE_BLOOD blood_color = "#EEEEEE" @@ -91,7 +91,7 @@ body_temperature = 350 - species_flags = NO_BREATHE|NO_SCAN|NO_BLOOD|NO_POISON|NO_PAIN|IS_SYNTHETIC|NO_CHEM_METABOLIZATION|NO_STAMINA|DETACHABLE_HEAD|HAS_UNDERWEAR|ROBOTIC_LIMBS|GREYSCALE_BLOOD + species_flags = NO_BREATHE|NO_BLOOD|NO_POISON|NO_PAIN|IS_SYNTHETIC|NO_CHEM_METABOLIZATION|NO_STAMINA|DETACHABLE_HEAD|HAS_UNDERWEAR|ROBOTIC_LIMBS|GREYSCALE_BLOOD blood_color = "#EEEEEE" hair_color = "#000000" diff --git a/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.dm b/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.dm index e81e38edea1c4..746fe4b16b2f4 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/behemoth/abilities_behemoth.dm @@ -608,6 +608,8 @@ . = ..() button.cut_overlay(visual_references[VREF_MUTABLE_EARTH_PILLAR]) visual_references[VREF_MUTABLE_EARTH_PILLAR] = null + for(var/pillar in active_pillars) + UnregisterSignal(pillar, list(COMSIG_QDELETING, COMSIG_XENOABILITY_EARTH_PILLAR_THROW)) QDEL_LIST(active_pillars) /datum/action/ability/activable/xeno/earth_riser/update_button_icon() @@ -662,7 +664,10 @@ if(!target_turf) return var/mob/living/carbon/xenomorph/xeno_owner = owner - active_pillars += new /obj/structure/earth_pillar(target_turf, xeno_owner, enhanced) + var/new_pillar = new /obj/structure/earth_pillar(target_turf, xeno_owner, enhanced) + RegisterSignal(new_pillar, COMSIG_XENOABILITY_EARTH_PILLAR_THROW, PROC_REF(pillar_thrown)) + RegisterSignal(new_pillar, COMSIG_QDELETING, PROC_REF(pillar_destroyed)) + active_pillars += new_pillar update_button_icon() if(enhanced) return @@ -671,6 +676,20 @@ continue affected_living.knockback(xeno_owner, EARTH_RISER_KNOCKBACK_DISTANCE, EARTH_RISER_KNOCKBACK_SPEED) +///Handles the cooldown when a pillar is actually thrown +/datum/action/ability/activable/xeno/earth_riser/proc/pillar_thrown(obj/structure/earth_pillar/source) + SIGNAL_HANDLER + UnregisterSignal(source, COMSIG_XENOABILITY_EARTH_PILLAR_THROW) + deltimer(cooldown_timer) + cooldown_timer = null + add_cooldown() + +///removes the pillar from active_pillars +/datum/action/ability/activable/xeno/earth_riser/proc/pillar_destroyed(obj/structure/earth_pillar/source) + SIGNAL_HANDLER + UnregisterSignal(source, list(COMSIG_QDELETING, COMSIG_XENOABILITY_EARTH_PILLAR_THROW)) + active_pillars -= source + /** * Changes the maximum amount of Earth Pillars that can be had. * If the user has more Earth Pillars active than the new maximum, it will destroy them, from oldest to newest, until meeting the new amount. @@ -1211,9 +1230,6 @@ /obj/structure/earth_pillar/Destroy() playsound(loc, 'sound/effects/behemoth/earth_pillar_destroyed.ogg', 40, TRUE) new /obj/effect/temp_visual/behemoth/earth_pillar/broken(loc) - var/datum/action/ability/activable/xeno/earth_riser/earth_riser_action = xeno_owner?.actions_by_path[/datum/action/ability/activable/xeno/earth_riser] - if(earth_riser_action && (src in earth_riser_action.active_pillars)) - earth_riser_action.active_pillars -= src xeno_owner = null return ..() @@ -1302,11 +1318,10 @@ /obj/structure/earth_pillar/proc/throw_pillar(atom/target_atom, landslide) if(!isxeno(usr) || !in_range(src, usr) || target_atom == src || warning_flashes < initial(warning_flashes)) return + SEND_SIGNAL(src, COMSIG_XENOABILITY_EARTH_PILLAR_THROW) var/source_turf = get_turf(src) playsound(source_turf, get_sfx("behemoth_earth_pillar_hit"), 40) new /obj/effect/temp_visual/behemoth/landslide/hit(source_turf) - var/datum/action/ability/activable/xeno/earth_riser/earth_riser_action = xeno_owner?.actions_by_path[/datum/action/ability/activable/xeno/earth_riser] - earth_riser_action?.add_cooldown() qdel(src) var/datum/ammo/xeno/earth_pillar/projectile = landslide? GLOB.ammo_list[/datum/ammo/xeno/earth_pillar/landslide] : GLOB.ammo_list[/datum/ammo/xeno/earth_pillar] var/obj/projectile/new_projectile = new /obj/projectile(source_turf) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm b/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm index f3f9fa7da75ad..21b861f09bdd1 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm @@ -153,7 +153,7 @@ update_action_buttons() handle_weeds_adjacent_removed() -/mob/living/carbon/xenomorph/hivemind/flamer_fire_act(burnlevel) +/mob/living/carbon/xenomorph/hivemind/fire_act(burn_level) return_to_core() to_chat(src, span_xenonotice("We were on top of fire, we got moved to our core.")) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm b/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm index e0893aba38dc4..ca4ea2caf059f 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm @@ -60,7 +60,8 @@ COMSIG_XENOMORPH_GRAB, COMSIG_XENOMORPH_THROW_HIT, COMSIG_LIVING_IGNITED, - COMSIG_LIVING_ADD_VENTCRAWL), PROC_REF(cancel_stealth)) + COMSIG_LIVING_ADD_VENTCRAWL, + COMSIG_XENOABILITY_MIRAGE_SWAP), PROC_REF(cancel_stealth)) RegisterSignal(owner, COMSIG_XENOMORPH_ATTACK_OBJ, PROC_REF(on_obj_attack)) @@ -74,6 +75,12 @@ addtimer(CALLBACK(src, PROC_REF(sneak_attack_cooldown)), HUNTER_POUNCE_SNEAKATTACK_DELAY) //Short delay before we can sneak attack. START_PROCESSING(SSprocessing, src) +/datum/action/ability/xeno_action/stealth/process() + if(!stealth) + return PROCESS_KILL + handle_stealth() + +///Disables stealth /datum/action/ability/xeno_action/stealth/proc/cancel_stealth() //This happens if we take damage, attack, pounce, toggle stealth off, and do other such exciting stealth breaking activities. SIGNAL_HANDLER add_cooldown() @@ -90,6 +97,7 @@ COMSIG_XENOMORPH_THROW_HIT, COMSIG_LIVING_IGNITED, COMSIG_LIVING_ADD_VENTCRAWL, + COMSIG_XENOABILITY_MIRAGE_SWAP, SIGNAL_ADDTRAIT(TRAIT_KNOCKEDOUT), SIGNAL_ADDTRAIT(TRAIT_FLOORED), COMSIG_XENOMORPH_ZONE_SELECT, @@ -99,7 +107,7 @@ stealth = FALSE can_sneak_attack = FALSE REMOVE_TRAIT(owner, TRAIT_TURRET_HIDDEN, STEALTH_TRAIT) - owner.alpha = 255 //no transparency/translucency + owner.alpha = initial(owner.alpha) ///Signal wrapper to verify that an object is damageable before breaking stealth /datum/action/ability/xeno_action/stealth/proc/on_obj_attack(datum/source, obj/attacked) @@ -107,6 +115,7 @@ if(attacked.resistance_flags & XENO_DAMAGEABLE) cancel_stealth() +///Re-enables sneak attack if still stealthed /datum/action/ability/xeno_action/stealth/proc/sneak_attack_cooldown() if(!stealth || can_sneak_attack) return @@ -114,11 +123,7 @@ to_chat(owner, span_xenodanger("We're ready to use Sneak Attack while stealthed.")) playsound(owner, "sound/effects/xeno_newlarva.ogg", 25, 0, 1) -/datum/action/ability/xeno_action/stealth/process() - if(!stealth) - return PROCESS_KILL - handle_stealth() - +///Updates or cancels stealth /datum/action/ability/xeno_action/stealth/proc/handle_stealth() SIGNAL_HANDLER var/mob/living/carbon/xenomorph/xenoowner = owner @@ -163,6 +168,7 @@ M.add_slowdown(1) to_chat(owner, span_xenodanger("Pouncing from the shadows, we stagger our victim.")) +///Special sneak attack when stealthed /datum/action/ability/xeno_action/stealth/proc/sneak_attack_slash(datum/source, mob/living/target, damage, list/damage_mod, list/armor_mod) SIGNAL_HANDLER if(!can_sneak_attack) @@ -185,12 +191,14 @@ cancel_stealth() +///Breaks stealth if sufficient damage taken /datum/action/ability/xeno_action/stealth/proc/damage_taken(mob/living/carbon/xenomorph/X, damage_taken) SIGNAL_HANDLER var/mob/living/carbon/xenomorph/xenoowner = owner if(damage_taken > xenoowner.xeno_caste.stealth_break_threshold) cancel_stealth() +///Modifier to plasma regen when stealthed /datum/action/ability/xeno_action/stealth/proc/plasma_regen(datum/source, list/plasma_mod) SIGNAL_HANDLER if(owner.last_move_intent < world.time - 20) //Stealth halves the rate of plasma recovery on weeds, and eliminates it entirely while moving @@ -198,6 +206,7 @@ else plasma_mod[1] = 0 +///Makes sneak attack always accurate to def zone /datum/action/ability/xeno_action/stealth/proc/sneak_attack_zone() SIGNAL_HANDLER if(!can_sneak_attack) @@ -571,17 +580,20 @@ /// Swap places of hunter and an illusion /datum/action/ability/xeno_action/mirage/proc/swap() swap_used = TRUE - var/mob/living/carbon/xenomorph/X = owner + var/mob/living/carbon/xenomorph/xeno_owner = owner if(!length(illusions)) - to_chat(X, span_xenowarning("We have no illusions to swap with!")) + to_chat(xeno_owner, span_xenowarning("We have no illusions to swap with!")) return - X.playsound_local(X, 'sound/effects/swap.ogg', 10, 0, 1) - var/turf/current_turf = get_turf(X) + xeno_owner.playsound_local(xeno_owner, 'sound/effects/swap.ogg', 10, 0, 1) + var/turf/current_turf = get_turf(xeno_owner) var/mob/selected_illusion = illusions[1] - X.forceMove(get_turf(selected_illusion.loc)) + if(selected_illusion.z != xeno_owner.z) + return + SEND_SIGNAL(xeno_owner, COMSIG_XENOABILITY_MIRAGE_SWAP) + xeno_owner.forceMove(get_turf(selected_illusion.loc)) selected_illusion.forceMove(current_turf) // *************************************** diff --git a/code/modules/mob/living/carbon/xenomorph/castes/king/castedatum_king.dm b/code/modules/mob/living/carbon/xenomorph/castes/king/castedatum_king.dm index 9cd06de1eaf6d..889ecf9d3694c 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/king/castedatum_king.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/king/castedatum_king.dm @@ -37,7 +37,7 @@ soft_armor = list(MELEE = 65, BULLET = 65, LASER = 65, ENERGY = 65, BOMB = 100, BIO = 60, FIRE = 100, ACID = 60) // *** Pheromones *** // - aura_strength = 6 + aura_strength = 4.5 minimap_icon = "xenoking" diff --git a/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/abilities_puppeteer.dm b/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/abilities_puppeteer.dm index ad073ae41f5fa..72adc59fa8f34 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/abilities_puppeteer.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/abilities_puppeteer.dm @@ -457,27 +457,38 @@ add_cooldown() // *************************************** -// *********** Orders +// *********** Unleash puppets // *************************************** +/datum/action/ability/xeno_action/puppeteer_unleash + name = "Unleash Puppets" + action_icon_state = "enrage" + desc = "Send out your puppets to attack nearby humans" + keybinding_signals = list( + KEYBINDING_NORMAL = COMSIG_XENOABILITY_UNLEASHPUPPETS, + ) + +/datum/action/ability/xeno_action/puppeteer_unleash/action_activate(mob/living/victim) + if(SEND_SIGNAL(owner, COMSIG_PUPPET_CHANGE_ALL_ORDER, PUPPET_ATTACK)) + owner.balloon_alert(owner, "success") + owner.visible_message(span_warning("[owner] swiftly manipulates the psychic strings of the puppets, ordering them to attack!")) + else + owner.balloon_alert(owner, "fail") -/datum/action/ability/xeno_action/puppeteer_orders - name = "Give Orders to Puppets" - action_icon_state = "orders" - desc = "Give orders to your puppets, altering their behaviour." +// *************************************** +// *********** Recall puppets +// *************************************** +/datum/action/ability/xeno_action/puppeteer_recall + name = "Recall Puppets" + action_icon = 'icons/mob/actions.dmi' + action_icon_state = "rally" + desc = "Recall your puppets to follow you once more" keybinding_signals = list( - KEYBINDING_NORMAL = COMSIG_XENOABILITY_SENDORDERS, + KEYBINDING_NORMAL = COMSIG_XENOABILITY_RECALLPUPPETS, ) -/datum/action/ability/xeno_action/puppeteer_orders/action_activate(mob/living/victim) - var/choice = show_radial_menu(owner, owner, GLOB.puppeteer_order_images_list, radius = 35) - if(!choice) - return - if(SEND_SIGNAL(owner, COMSIG_PUPPET_CHANGE_ALL_ORDER, choice)) +/datum/action/ability/xeno_action/puppeteer_recall/action_activate(mob/living/victim) + if(SEND_SIGNAL(owner, COMSIG_PUPPET_CHANGE_ALL_ORDER, PUPPET_RECALL)) owner.balloon_alert(owner, "success") - switch(choice) - if(PUPPET_ATTACK) - owner.visible_message(span_warning("[owner] swiftly manipulates the psychic strings of the puppets, ordering them to attack!")) - if(PUPPET_RECALL) - owner.visible_message(span_warning("[owner] quickly manipulates the psychic strings of the puppets, drawing them near!")) + owner.visible_message(span_warning("[owner] quickly manipulates the psychic strings of the puppets, drawing them near!")) else owner.balloon_alert(owner, "fail") diff --git a/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/castedatum_puppeteer.dm b/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/castedatum_puppeteer.dm index cc6c040bd5a80..d9081618564b7 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/castedatum_puppeteer.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/puppeteer/castedatum_puppeteer.dm @@ -39,7 +39,8 @@ /datum/action/ability/activable/xeno/refurbish_husk, /datum/action/ability/activable/xeno/puppet, /datum/action/ability/activable/xeno/organic_bomb, - /datum/action/ability/xeno_action/puppeteer_orders, + /datum/action/ability/xeno_action/puppeteer_unleash, + /datum/action/ability/xeno_action/puppeteer_recall, /datum/action/ability/activable/xeno/articulate, /datum/action/ability/activable/xeno/puppet_blessings, ) @@ -69,7 +70,8 @@ /datum/action/ability/activable/xeno/puppet, /datum/action/ability/activable/xeno/organic_bomb, /datum/action/ability/activable/xeno/tendril_patch, - /datum/action/ability/xeno_action/puppeteer_orders, + /datum/action/ability/xeno_action/puppeteer_unleash, + /datum/action/ability/xeno_action/puppeteer_recall, /datum/action/ability/activable/xeno/articulate, /datum/action/ability/activable/xeno/puppet_blessings, ) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm index 35d88f7ad829c..99eca65eb3a65 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm @@ -22,7 +22,7 @@ // *************************************** // *********** Mob overrides // *************************************** -/mob/living/carbon/xenomorph/ravager/flamer_fire_act(burnlevel) +/mob/living/carbon/xenomorph/ravager/fire_act(burn_level) . = ..() if(stat) return diff --git a/code/modules/mob/living/carbon/xenomorph/castes/wraith/castedatum_wraith.dm b/code/modules/mob/living/carbon/xenomorph/castes/wraith/castedatum_wraith.dm index fa1b2184681fd..716d1e8671f64 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/wraith/castedatum_wraith.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/wraith/castedatum_wraith.dm @@ -9,7 +9,7 @@ wound_type = "wraith" //used to match appropriate wound overlays // *** Melee Attacks *** // - melee_damage = 20 + melee_damage = 23 // *** Speed *** // speed = -1.25 diff --git a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm index cd5214f867b7c..fee719b20c527 100644 --- a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm @@ -1,9 +1,6 @@ -/mob/living/carbon/xenomorph/fire_act() +/mob/living/carbon/xenomorph/fire_act(burn_level) if(status_flags & GODMODE) return - return ..() - -/mob/living/carbon/xenomorph/flamer_fire_act(burnlevel) if(xeno_caste.caste_flags & CASTE_FIRE_IMMUNE) return return ..() diff --git a/code/modules/mob/living/carbon/xenomorph/egg.dm b/code/modules/mob/living/carbon/xenomorph/egg.dm index 5654dc4864c81..dcde5a9be30cc 100644 --- a/code/modules/mob/living/carbon/xenomorph/egg.dm +++ b/code/modules/mob/living/carbon/xenomorph/egg.dm @@ -69,10 +69,7 @@ return FALSE return TRUE -/obj/alien/egg/flamer_fire_act(burnlevel) - burst(TRUE) - -/obj/alien/egg/fire_act() +/obj/alien/egg/fire_act(burn_level) burst(TRUE) /obj/alien/egg/ex_act(severity) diff --git a/code/modules/mob/living/carbon/xenomorph/facehuggers.dm b/code/modules/mob/living/carbon/xenomorph/facehuggers.dm index 49bdd92b8239c..9651ebcd92d3b 100644 --- a/code/modules/mob/living/carbon/xenomorph/facehuggers.dm +++ b/code/modules/mob/living/carbon/xenomorph/facehuggers.dm @@ -645,11 +645,7 @@ P.ammo.on_hit_obj(src,P) return TRUE -/obj/item/clothing/mask/facehugger/fire_act(exposed_temperature, exposed_volume) - if(exposed_temperature > 300) - kill_hugger() - -/obj/item/clothing/mask/facehugger/flamer_fire_act(burnlevel) +/obj/item/clothing/mask/facehugger/fire_act(burn_level) kill_hugger() /obj/item/clothing/mask/facehugger/dropped(mob/user) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a9624e0e360cf..a9c8e9274b09a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -191,7 +191,7 @@ var/mob/living/living_puller = pulledby living_puller.set_pull_offsets(src) - if(s_active && !(s_active in contents) && !CanReach(s_active)) + if(s_active && !(s_active.parent in contents) && !CanReach(s_active.parent)) s_active.close(src) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 8dcb7ea20555a..b894d219705c2 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -181,10 +181,6 @@ if(fire_stacks > 0) adjust_fire_stacks(-1) //the fire is consumed slowly -/mob/living/fire_act() - adjust_fire_stacks(rand(1,2)) - IgniteMob() - /mob/living/lava_act() if(resistance_flags & INDESTRUCTIBLE) return FALSE @@ -200,8 +196,8 @@ IgniteMob() return TRUE -/mob/living/flamer_fire_act(burnlevel) - if(!burnlevel) +/mob/living/fire_act(burn_level) + if(!burn_level) return if(status_flags & (INCORPOREAL|GODMODE)) //Ignore incorporeal/invul targets return @@ -209,13 +205,13 @@ to_chat(src, span_warning("You are untouched by the flames.")) return - take_overall_damage(rand(10, burnlevel), BURN, FIRE, updating_health = TRUE, max_limbs = 4) + take_overall_damage(rand(10, burn_level), BURN, FIRE, updating_health = TRUE, max_limbs = 4) to_chat(src, span_warning("You are burned!")) if(pass_flags & PASS_FIRE) //Pass fire allow to cross fire without being ignited return - adjust_fire_stacks(burnlevel) + adjust_fire_stacks(burn_level) IgniteMob() /mob/living/proc/resist_fire(datum/source) diff --git a/code/modules/mob/living/silicon/ai/ai_notifications.dm b/code/modules/mob/living/silicon/ai/ai_notifications.dm index 59bfb1049bd22..6d868e7faf4d3 100644 --- a/code/modules/mob/living/silicon/ai/ai_notifications.dm +++ b/code/modules/mob/living/silicon/ai/ai_notifications.dm @@ -23,7 +23,7 @@ alertnotification.add_overlay(alert_overlay) ///Receive notifications about OB laser dots that have been deployed -/mob/living/silicon/ai/proc/receive_laser_ob(datum/source, obj/effect/overlay/temp/laser_target/OB/incoming_laser) +/mob/living/silicon/ai/proc/receive_laser_ob(datum/source, obj/effect/overlay/temp/laser_target/ob/incoming_laser) SIGNAL_HANDLER to_chat(src, span_notice("Orbital Bombardment laser detected. Target: [AREACOORD_NO_Z(incoming_laser)]")) notify_ai(src, " An Orbital Bombardment laser has been detected at [AREACOORD_NO_Z(incoming_laser)]!", ai_sound = 'sound/effects/obalarm.ogg', source = incoming_laser, action = NOTIFY_AI_ALERT, notify_volume = 15) @@ -80,4 +80,4 @@ SIGNAL_HANDLER var/area/A = get_area(callingholopad) to_chat(src, span_notice("Your presence is requested at [A]!")) - notify_ai(src, " Your presence is requested at [A]! ", source = callingholopad, action = NOTIFY_AI_ALERT, notify_volume = 15) + notify_ai(src, " Your presence is requested at [A]! ", source = callingholopad, action = NOTIFY_AI_ALERT, notify_volume = 35) diff --git a/code/modules/mob/living/silicon/ai/ai_verbs.dm b/code/modules/mob/living/silicon/ai/ai_verbs.dm index 09da883e2e355..0965ba9f3924b 100644 --- a/code/modules/mob/living/silicon/ai/ai_verbs.dm +++ b/code/modules/mob/living/silicon/ai/ai_verbs.dm @@ -112,7 +112,7 @@ "floating face" = 'icons/mob/ai.dmi', "xeno_queen" = 'icons/mob/ai.dmi', "void_horror" = 'icons/mob/ai.dmi', - "holo4" = 'icons/mob/ai.dmi' + "carp" = 'icons/mob/ai.dmi' ) hologram = tgui_input_list(src, "Please select a hologram:", null, icon_list) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index ccd70bbe026d4..d63462458c2bc 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -71,7 +71,7 @@ /mob/living/silicon/contents_explosion(severity) - return + return ..() /mob/living/silicon/emp_act(severity) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 81a46aac522bd..0b1164a884d77 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -216,33 +216,33 @@ /** * This is a SAFE proc. Use this instead of equip_to_splot()! - * set del_on_fail to have it delete W if it fails to equip + * set del_on_fail to have it delete item_to_equip if it fails to equip * unset redraw_mob to prevent the mob from being redrawn at the end. */ -/mob/proc/equip_to_slot_if_possible(obj/item/W, slot, ignore_delay = TRUE, del_on_fail = FALSE, warning = TRUE, redraw_mob = TRUE, override_nodrop = FALSE) - if(!istype(W) || QDELETED(W)) //This qdeleted is to prevent stupid behavior with things that qdel during init, like say stacks +/mob/proc/equip_to_slot_if_possible(obj/item/item_to_equip, slot, ignore_delay = TRUE, del_on_fail = FALSE, warning = TRUE, redraw_mob = TRUE, override_nodrop = FALSE) + if(!istype(item_to_equip) || QDELETED(item_to_equip)) //This qdeleted is to prevent stupid behavior with things that qdel during init, like say stacks return FALSE - if(!W.mob_can_equip(src, slot, warning, override_nodrop)) + if(!item_to_equip.mob_can_equip(src, slot, warning, override_nodrop)) if(del_on_fail) - qdel(W) + qdel(item_to_equip) return FALSE if(warning) to_chat(src, span_warning("You are unable to equip that.")) return FALSE - if(W.equip_delay_self && !ignore_delay) - if(!do_after(src, W.equip_delay_self, NONE, W, BUSY_ICON_FRIENDLY)) - to_chat(src, "You stop putting on \the [W]") + if(item_to_equip.equip_delay_self && !ignore_delay) + if(!do_after(src, item_to_equip.equip_delay_self, NONE, item_to_equip, BUSY_ICON_FRIENDLY)) + to_chat(src, "You stop putting on \the [item_to_equip]") return FALSE - equip_to_slot(W, slot) //This proc should not ever fail. + equip_to_slot(item_to_equip, slot) //This proc should not ever fail. //This will unwield items -without- triggering lights. - if(CHECK_BITFIELD(W.item_flags, TWOHANDED)) - W.unwield(src) + if(CHECK_BITFIELD(item_to_equip.item_flags, TWOHANDED)) + item_to_equip.unwield(src) return TRUE else - equip_to_slot(W, slot) //This proc should not ever fail. + equip_to_slot(item_to_equip, slot) //This proc should not ever fail. //This will unwield items -without- triggering lights. - if(CHECK_BITFIELD(W.item_flags, TWOHANDED)) - W.unwield(src) + if(CHECK_BITFIELD(item_to_equip.item_flags, TWOHANDED)) + item_to_equip.unwield(src) return TRUE /** @@ -298,7 +298,16 @@ if(slot == SLOT_IN_R_POUCH && (!(istype(I, /obj/item/storage/holster) || istype(I, /obj/item/weapon) || istype(I, /obj/item/storage/pouch/pistol)))) return FALSE + //Sends quick equip signal, if our signal is not handled/blocked we continue to the normal behaviour + var/return_value = SEND_SIGNAL(I, COMSIG_ITEM_QUICK_EQUIP, src) + switch(return_value) + if(COMSIG_QUICK_EQUIP_HANDLED) + return TRUE + if(COMSIG_QUICK_EQUIP_BLOCKED) + return FALSE + //calls on the item to return a suitable item to be equipped + //Realistically only would get called on an item that has no storage/storage didnt fail signal var/obj/item/found = I.do_quick_equip(src) if(!found) return FALSE diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 7d5a782d81d0d..bf03e6b9cd394 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -95,7 +95,8 @@ var/atom/movable/remote_control var/obj/item/l_hand //Living var/obj/item/r_hand //Living - var/obj/item/storage/s_active //Carbon + ///Our mobs currently active storage + var/datum/storage/s_active //Carbon var/obj/item/clothing/mask/wear_mask //Carbon ///the current turf being examined in the stat panel var/turf/listed_turf diff --git a/code/modules/power/light_bulbs.dm b/code/modules/power/light_bulbs.dm new file mode 100644 index 0000000000000..59b4ec6fa9582 --- /dev/null +++ b/code/modules/power/light_bulbs.dm @@ -0,0 +1,132 @@ +// the light item +// can be tube or bulb subtypes +// will fit into empty /obj/machinery/light of the corresponding type + +/obj/item/light_bulb + icon = 'icons/obj/lighting.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/inhands/equipment/lights_left.dmi', + slot_r_hand_str = 'icons/mob/inhands/equipment/lights_right.dmi', + ) + force = 2 + throwforce = 5 + w_class = WEIGHT_CLASS_SMALL + base_icon_state + ///Condition of the bulb + var/status = LIGHT_OK + ///Number of times toggled + var/switchcount = 0 + ///If its rigged to explode + var/rigged = 0 + ///Light level this gives off when on + var/brightness = 2 + +/obj/item/light_bulb/throw_impact(atom/hit_atom) + . = ..() + if(!.) + return + shatter() + +/obj/item/light_bulb/tube + name = "light tube" + desc = "A replacement light tube." + icon_state = "ltube" + base_icon_state = "ltube" + item_state = "c_tube" + brightness = 8 + +/obj/item/light_bulb/tube/large + w_class = WEIGHT_CLASS_SMALL + name = "large light tube" + brightness = 15 + +/obj/item/light_bulb/bulb + name = "light bulb" + desc = "A replacement light bulb." + icon_state = "lbulb" + base_icon_state = "lbulb" + brightness = 5 + +/obj/item/light_bulb/bulb/attack_turf(turf/T, mob/living/user) + var/turf/open/floor/light/light_tile = T + if(!istype(light_tile)) + return + if(status != LIGHT_OK) + to_chat(user, span_notice("The replacement bulb is broken.")) + return + var/obj/item/stack/tile/light/existing_bulb = light_tile.floor_tile + if(existing_bulb.state == LIGHT_TILE_OK) + to_chat(user, span_notice("The lightbulb seems fine, no need to replace it.")) + return + + user.drop_held_item(src) + qdel(src) + existing_bulb.state = LIGHT_TILE_OK + light_tile.update_icon() + to_chat(user, span_notice("You replace the light bulb.")) + + +// update the icon state and description of the light + +/obj/item/light_bulb/proc/update() + switch(status) + if(LIGHT_OK) + icon_state = base_icon_state + desc = "A replacement [name]." + if(LIGHT_BURNED) + icon_state = "[base_icon_state]_burned" + desc = "A burnt-out [name]." + if(LIGHT_BROKEN) + icon_state = "[base_icon_state]_broken" + desc = "A broken [name]." + + +/obj/item/light_bulb/Initialize(mapload) + . = ..() + switch(name) + if("light tube") + brightness = rand(6,9) + if("light bulb") + brightness = rand(4,6) + update() + + +// attack bulb/tube with object +// if a syringe, can inject phoron to make it explode +/obj/item/light_bulb/attackby(obj/item/I, mob/user, params) + . = ..() + if(.) + return + + if(istype(I, /obj/item/reagent_containers/syringe)) + var/obj/item/reagent_containers/syringe/S = I + + to_chat(user, "You inject the solution into the [src].") + + if(S.reagents.has_reagent(/datum/reagent/toxin/phoron, 5)) + rigged = TRUE + + S.reagents.clear_reagents() + +// called after an attack with a light item +// shatter light, unless it was an attempt to put it in a light socket +// now only shatter if the intent was harm + +/obj/item/light_bulb/afterattack(atom/target, mob/user, proximity) + if(!proximity) + return + if(istype(target, /obj/machinery/light)) + return + if(user.a_intent != INTENT_HARM) + return + + shatter() + +/obj/item/light_bulb/proc/shatter() + if(status == LIGHT_OK || status == LIGHT_BURNED) + src.visible_message(span_warning("[name] shatters."),span_warning("You hear a small glass object shatter.")) + status = LIGHT_BROKEN + force = 5 + sharp = IS_SHARP_ITEM_SIMPLE + playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) + update() diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 877888749786e..f2bca83340288 100755 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -1,134 +1,11 @@ -// The lighting system -// -// consists of light fixtures (/obj/machinery/light) and light tube/bulb items (/obj/item/light) +///Power usage mult by luminosity +#define LIGHTING_POWER_FACTOR 10 - -// status values shared between lighting fixtures and items -/obj/machinery/light_construct - name = "light fixture frame" - desc = "A light fixture under construction." - icon = 'icons/obj/lighting.dmi' - icon_state = "tube-construct-stage1" - anchored = TRUE - layer = FLY_LAYER - var/stage = 1 - var/fixture_type = "tube" - var/sheets_refunded = 2 - var/obj/machinery/light/newlight = null - -/obj/machinery/light_construct/Initialize(mapload) - . = ..() - if(fixture_type == "bulb") - icon_state = "bulb-construct-stage1" - -/obj/machinery/light_construct/examine(mob/user) - . = ..() - switch(stage) - if(1) - . += "It's an empty frame." - if(2) - . += "It's wired." - if(3) - . += "The casing is closed." - - -/obj/machinery/light_construct/attackby(obj/item/I, mob/user, params) - . = ..() - if(.) - return - - if(iswrench(I)) - if(stage == 1) - playsound(loc, 'sound/items/ratchet.ogg', 25, 1) - to_chat(user, "You begin deconstructing [src].") - if(!do_after(usr, 30, NONE, src, BUSY_ICON_BUILD)) - return - new /obj/item/stack/sheet/metal(get_turf(loc), sheets_refunded) - user.visible_message("[user] deconstructs [src].", \ - "You deconstruct [src].", "You hear a noise.") - playsound(loc, 'sound/items/deconstruct.ogg', 25, 1) - qdel(src) - else if(stage == 2) - to_chat(user, "You have to remove the wires first.") - return - else if(stage == 3) - to_chat(user, "You have to unscrew the case first.") - return - - else if(iswirecutter(I)) - if(stage != 2) - return - stage = 1 - switch(fixture_type) - if("tube") - icon_state = "tube-construct-stage1" - if("bulb") - icon_state = "bulb-construct-stage1" - new /obj/item/stack/cable_coil(get_turf(loc), 1, "red") - user.visible_message("[user.name] removes the wiring from [src].", \ - "You remove the wiring from [src].", "You hear a noise.") - playsound(loc, 'sound/items/wirecutter.ogg', 25, 1) - - else if(iscablecoil(I)) - var/obj/item/stack/cable_coil/coil = I - - if(stage != 1) - return - - if(!coil.use(1)) - return - - switch(fixture_type) - if("tube") - icon_state = "tube-construct-stage2" - if("bulb") - icon_state = "bulb-construct-stage2" - stage = 2 - user.visible_message("[user] adds wires to [src].", \ - "You add wires to [src].") - - else if(isscrewdriver(I)) - if(stage != 2) - return - - switch(fixture_type) - if("tube") - icon_state = "tube-empty" - if("bulb") - icon_state = "bulb-empty" - - stage = 3 - user.visible_message("[user] closes [src]'s casing.", \ - "You close [src]'s casing.", "You hear a noise.") - playsound(loc, 'sound/items/screwdriver.ogg', 25, 1) - - switch(fixture_type) - if("tube") - newlight = new /obj/machinery/light/built(loc) - if("bulb") - newlight = new /obj/machinery/light/small/built(loc) - - newlight.setDir(dir) - qdel(src) - - -/obj/machinery/light_construct/small - name = "small light fixture frame" - desc = "A small light fixture under construction." - icon = 'icons/obj/lighting.dmi' - icon_state = "bulb-construct-stage1" - anchored = TRUE - stage = 1 - fixture_type = "bulb" - sheets_refunded = 1 - -/// the standard tube light fixture /obj/machinery/light name = "light fixture" icon = 'icons/obj/lighting.dmi' - var/base_state = "tube" // base description and icon_state base_icon_state = "tube" - icon_state = "tube_1" + icon_state = "tube_empty" desc = "A lighting fixture." anchored = TRUE layer = FLY_LAYER @@ -138,16 +15,21 @@ power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list light_system = STATIC_LIGHT //do not change this, byond and potato pcs no like obj_flags = CAN_BE_HIT - var/brightness = 8 // power usage and light range when on - var/bulb_power = 1 // basically the light_power of the emitted light source + /// power usage and light range when on + var/brightness = 8 + /// basically the light_power of the emitted light source + var/bulb_power = 1 + ///Light colour var/bulb_colour = COLOR_WHITE - var/status = LIGHT_OK // LIGHT_OK, _EMPTY, _BURNED or _BROKEN + /// LIGHT_OK, _EMPTY, _BURNED or _BROKEN + var/status = LIGHT_OK ///is our light flickering? var/flickering = FALSE ///what's the duration that the light switches between on and off while flickering var/flicker_time = 2 SECONDS ///the type of light item var/light_type = /obj/item/light_bulb/tube + ///the bulb item name in this light var/fitting = "tube" ///count of number of times switched on/off. this is used to calc the probability the light burns out var/switchcount = 0 @@ -164,73 +46,8 @@ ///looping sound for flickering lights var/datum/looping_sound/flickeringambient/lightambient -/obj/machinery/light/mainship - base_state = "tube" - -/obj/machinery/light/mainship/Initialize(mapload) - . = ..() - GLOB.mainship_lights += src - -/obj/machinery/light/mainship/Destroy() - . = ..() - GLOB.mainship_lights -= src - -/obj/machinery/light/mainship/small - icon_state = "bulb_1" - base_state = "bulb" - fitting = "bulb" - brightness = 4 - desc = "A small lighting fixture." - light_type = /obj/item/light_bulb/bulb - base_icon_state = "bulb" - -/obj/machinery/light/red - base_state = "tube_red" - icon_state = "tube_red" - light_color = LIGHT_COLOR_FLARE - brightness = 3 - bulb_power = 0.5 - bulb_colour = LIGHT_COLOR_FLARE - -// the smaller bulb light fixture - -/obj/machinery/light/small - icon_state = "bulb_1" - base_state = "bulb" - fitting = "bulb" - brightness = 4 - desc = "A small lighting fixture." - light_type = /obj/item/light_bulb/bulb - base_icon_state = "bulb" - -/obj/machinery/light/spot - name = "spotlight" - fitting = "large tube" - light_type = /obj/item/light_bulb/tube/large - brightness = 12 - -/obj/machinery/light/built/Initialize(mapload) - . = ..() - status = LIGHT_EMPTY - update(FALSE) - - -/obj/machinery/light/small/built/Initialize(mapload) - . = ..() - status = LIGHT_EMPTY - update(FALSE) - // create a new lighting fixture /obj/machinery/light/Initialize(mapload, ...) - switch(dir) - if(NORTH) - light_pixel_y = 15 - if(SOUTH) - light_pixel_y = -15 - if(WEST) - light_pixel_x = 15 - if(EAST) - light_pixel_x = -15 . = ..() GLOB.nightfall_toggleable_lights += src @@ -243,19 +60,11 @@ if(prob(5)) broken(TRUE) + update_offsets() update(FALSE) - switch(dir) - if(NORTH) - pixel_y = 20 - if(EAST) - pixel_x = 10 - if(WEST) - pixel_x = -10 - return INITIALIZE_HINT_LATELOAD - /obj/machinery/light/LateInitialize() var/area/A = get_area(src) turn_light(null, (A.lightswitch && A.power_light)) @@ -265,61 +74,55 @@ GLOB.nightfall_toggleable_lights -= src return ..() -/obj/machinery/light/proc/is_broken() - if(status == LIGHT_BROKEN) - return TRUE - return FALSE +/obj/machinery/light/setDir(newdir) + . = ..() + update_offsets() -/obj/machinery/light/update_icon_state() +/obj/machinery/light/update_overlays() . = ..() - switch(status) // set icon_states + switch(status) if(LIGHT_OK) - icon_state = "[base_state]_[light_on]" + . += "[base_icon_state]_[light_on]" if(LIGHT_EMPTY) - icon_state = "[base_state]-empty" + . += "[base_icon_state]_empty" if(LIGHT_BURNED) - icon_state = "[base_state]-burned" + . += "[base_icon_state]_burned" if(LIGHT_BROKEN) - icon_state = "[base_state]-broken" + . += "[base_icon_state]_broken" -// update the icon_state and luminosity of the light depending on its state -/obj/machinery/light/proc/update(trigger = TRUE, toggle_on = TRUE) - var/area/A = get_area(src) - if(A.lightswitch && A.power_light && status == LIGHT_OK && toggle_on) - var/BR = brightness - var/PO = bulb_power - var/CO = bulb_colour - if(color) - CO = color - var/matching = light && BR == light.light_range && PO == light.light_power && CO == light.light_color - if(!matching) - switchcount++ - if(rigged) - if(status == LIGHT_OK && trigger) - explode() - else if(prob(min(60, (switchcount ^ 2) * 0.01))) - if(trigger) - broken() - else - use_power = ACTIVE_POWER_USE - set_light(BR, PO, CO) - else - use_power = IDLE_POWER_USE - set_light(0) +/obj/machinery/light/ex_act(severity) + switch(severity) + if(EXPLODE_DEVASTATE) + qdel(src) + return + if(EXPLODE_HEAVY) + if (prob(75)) + broken() + if(EXPLODE_LIGHT) + if (prob(50)) + broken() + if(EXPLODE_WEAK) + if (prob(25)) + broken() - active_power_usage = (luminosity * 10) - update_icon() +/obj/machinery/light/fire_act(burn_level) + if(prob(max(0, burn_level * 0.5))) + broken() + +/obj/machinery/light/power_change() + var/area/A = get_area(src) + if(flickering) + lightambient.start(src) + addtimer(CALLBACK(src, PROC_REF(flicker)), flicker_time) + turn_light(null, (A.lightswitch && A.power_light)) -// attempt to set the light's on/off status -// will not switch on if broken/burned/empty /obj/machinery/light/turn_light(mob/user, toggle_on) - if (status != LIGHT_OK) //Can't turn a broken light + if (status != LIGHT_OK) return . = ..() light_on = toggle_on update(TRUE, toggle_on) -// examine verb /obj/machinery/light/examine(mob/user) . = ..() switch(status) @@ -334,24 +137,20 @@ if(flickering) . += "The fixture seems to be damaged and the cabling is partially broken." - - -// attack with item - insert light (if right type), otherwise try to break the light - /obj/machinery/light/attackby(obj/item/I, mob/user, params) . = ..() if(.) return if(istype(I, /obj/item/lightreplacer)) - var/obj/item/lightreplacer/LR = I if(!isliving(user)) return + var/mob/living/living_user = user + var/obj/item/lightreplacer/lightreplacer = I + lightreplacer.ReplaceLight(src, living_user) + return - var/mob/living/L = user - LR.ReplaceLight(src, L) - - else if(istype(I, /obj/item/light_bulb)) + if(istype(I, /obj/item/light_bulb)) if(status != LIGHT_EMPTY) to_chat(user, "There is a [fitting] already inserted.") return @@ -375,106 +174,62 @@ if(light_on && rigged) explode() + return - else if(status != LIGHT_BROKEN && status != LIGHT_EMPTY) - if(!prob(1 + I.force * 5)) - to_chat(user, "You hit the light!") - return - - visible_message("[user] smashed the light!", "You hit the light, and it smashes!") - if(light_on && (I.atom_flags & CONDUCT) && prob(12)) - electrocute_mob(user, get_area(src), src, 0.3) - broken() - - else if(status == LIGHT_EMPTY) - if(isscrewdriver(I)) //If it's a screwdriver open it. - playsound(loc, 'sound/items/screwdriver.ogg', 25, 1) - user.visible_message("[user] opens [src]'s casing.", \ - "You open [src]'s casing.", "You hear a noise.") - var/obj/machinery/light_construct/newlight - switch(fitting) - if("tube") - newlight = new /obj/machinery/light_construct(loc) - newlight.icon_state = "tube-construct-stage2" - - if("bulb") - newlight = new /obj/machinery/light_construct/small(loc) - newlight.icon_state = "bulb-construct-stage2" - newlight.setDir(dir) - newlight.stage = 2 - qdel(src) - - else if(has_power() && (I.atom_flags & CONDUCT)) - to_chat(user, "You stick \the [I] into the light socket!") - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - if(prob(75)) - electrocute_mob(user, get_area(src), src, rand(7, 10) * 0.1) - - -// returns whether this light has power -// true if area has power and lightswitch is on -/obj/machinery/light/proc/has_power() - var/area/A = get_area(src) - return A.lightswitch && A.power_light + if(status == LIGHT_EMPTY && has_power() && (I.atom_flags & CONDUCT)) + to_chat(user, "You stick \the [I] into the light socket!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread(src) + s.set_up(3, 1, loc) + s.start() + if(prob(75)) + electrocute_mob(user, get_area(src), src, rand(7, 10) * 0.1) -///flicker lights on and off -/obj/machinery/light/proc/flicker(toggle_flicker = FALSE) - if(!has_power()) - lightambient.stop(src) +/obj/machinery/light/attacked_by(obj/item/I, mob/living/user, def_zone) + . = ..() + if(QDELETED(src)) return - if(toggle_flicker) - if(status != LIGHT_OK) - addtimer(CALLBACK(src, PROC_REF(flicker), TRUE), flicker_time) - return - flickering = !flickering - if(flickering) - lightambient.start(src) - else - lightambient.stop(src) - if(random_flicker) - flicker_time = rand(flicker_time_lower_min, flicker_time_upper_max) - if(status != LIGHT_OK) - lightambient.stop(src) - flickering = FALSE - addtimer(CALLBACK(src, PROC_REF(flicker), TRUE), flicker_time) + if(status != LIGHT_OK && status != LIGHT_BURNED) return - light_flicker_state = !light_flicker_state - if(!light_flicker_state) - flick("[base_icon_state]_flick_off", src) - //delay the power change long enough to get the flick() animation off - addtimer(CALLBACK(src, PROC_REF(flicker_power_state)), 0.3 SECONDS) - else - flick("[base_icon_state]_flick_on", src) - addtimer(CALLBACK(src, PROC_REF(flicker_power_state)), 0.3 SECONDS) - flicker_time = flicker_time * 2 //for effect it's best if the amount of time we spend off is more than the time we spend on - if(!flickering) + if(!prob(1 + I.force * 5)) return - addtimer(CALLBACK(src, PROC_REF(flicker)), flicker_time) -///proc to toggle power on and off for light -/obj/machinery/light/proc/flicker_power_state(turn_on = TRUE, turn_off = FALSE) - if(!light_flicker_state) - pick(playsound(loc, 'sound/effects/lightfizz.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz2.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz3.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz4.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz5.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz6.ogg', 10, TRUE)) - update(FALSE) - else - pick(playsound(loc, 'sound/effects/lightfizz.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz2.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz3.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz4.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz5.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz6.ogg', 10, TRUE)) - turn_light(null, FALSE) + visible_message("[user] smashed the light!", "You hit the light, and it smashes!") + if(light_on && (I.atom_flags & CONDUCT) && prob(12)) + electrocute_mob(user, get_area(src), src, 0.3) + broken() + +/obj/machinery/light/screwdriver_act(mob/living/user, obj/item/I) + if(user.a_intent == INTENT_HARM) + return FALSE + if(status != LIGHT_EMPTY) + balloon_alert(user, "Remove bulb first") + return TRUE + + playsound(loc, 'sound/items/screwdriver.ogg', 25, 1) + user.visible_message("[user] opens [src]'s casing.", \ + "You open [src]'s casing.", "You hear a noise.") + var/obj/machinery/light_construct/newlight + switch(fitting) + if("bulb") + newlight = new /obj/machinery/light_construct/small(loc) + newlight.icon_state = "bulb-construct-stage2" + else //we'll assume tube as the default in case of shitcodery + newlight = new /obj/machinery/light_construct(loc) + newlight.icon_state = "tube-construct-stage2" + newlight.setDir(dir) + newlight.stage = 2 + qdel(src) + return TRUE -//Xenos smashing lights /obj/machinery/light/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, armor_type = MELEE, effects = TRUE, armor_penetration = xeno_attacker.xeno_caste.melee_ap, isrightclick = FALSE) if(xeno_attacker.status_flags & INCORPOREAL) return - if(status == 2) //Ignore if broken. + if(status == LIGHT_BROKEN) return FALSE xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_SMASH) xeno_attacker.visible_message(span_danger("\The [xeno_attacker] smashes [src]!"), \ span_danger("We smash [src]!"), null, 5) - broken() //Smashola! - -// attack with hand - remove tube/bulb -// if hands aren't protected and the light is on, burn the player + broken() /obj/machinery/light/attack_hand(mob/living/user) . = ..() @@ -491,7 +246,6 @@ broken() return - // make it burn hands if not wearing fire-insulated gloves if(light_on) var/prot = 0 var/mob/living/carbon/human/H = user @@ -510,29 +264,128 @@ to_chat(user, "You remove the light [fitting].") else to_chat(user, "You try to remove the light [fitting], but it's too hot and you don't want to burn your hand.") - return // if burned, don't remove the light + return else to_chat(user, "You remove the light [fitting].") - // create a light tube/bulb item and put it in the user's hand var/obj/item/light_bulb/L = new light_type() L.status = status L.rigged = rigged L.brightness = src.brightness - - // light item inherits the switchcount, then zero it L.switchcount = switchcount switchcount = 0 L.update() - if(!user.put_in_active_hand(L)) //succesfully puts it in our active hand - L.forceMove(loc) //if not, put it on the ground + if(!user.put_in_active_hand(L)) + L.forceMove(loc) status = LIGHT_EMPTY update() -// break the light and make sparks if was on +///Sets the correct offsets for the object and light based on dir +/obj/machinery/light/proc/update_offsets() + switch(dir) + if(NORTH) + light_pixel_y = 15 + light_pixel_x = 0 + pixel_y = 20 + pixel_x = 0 + if(SOUTH) + light_pixel_y = -15 + light_pixel_x = 0 + pixel_y = 0 + pixel_x = 0 + if(WEST) + light_pixel_y = 0 + light_pixel_x = 15 + pixel_y = 0 + pixel_x = -10 + if(EAST) + light_pixel_y = 0 + light_pixel_x = -15 + pixel_y = 0 + pixel_x = 10 + +///update the light state then icon +/obj/machinery/light/proc/update(trigger = TRUE, toggle_on = TRUE) + var/area/A = get_area(src) + if(!A.lightswitch || !A.power_light || status != LIGHT_OK || !toggle_on) + use_power = IDLE_POWER_USE + set_light(0) + active_power_usage = (luminosity * LIGHTING_POWER_FACTOR) + update_icon() + return + + var/new_brightness = brightness + var/new_power = bulb_power + var/new_colour = color ? color : bulb_colour + var/matching = light && new_brightness == light.light_range && new_power == light.light_power && new_colour == light.light_color + if(matching) + return + switchcount++ + if(trigger) + if(rigged && (status == LIGHT_OK)) + explode() + return + if(prob(min(60, (switchcount ^ 2) * 0.01))) + broken() + return + + use_power = ACTIVE_POWER_USE + set_light(new_brightness, new_power, new_colour) + active_power_usage = (luminosity * LIGHTING_POWER_FACTOR) + update_icon() + +///Returns true if area is powered and has lights toggled on +/obj/machinery/light/proc/has_power() + var/area/A = get_area(src) + return A.lightswitch && A.power_light + +///flicker lights on and off +/obj/machinery/light/proc/flicker(toggle_flicker = FALSE) + if(!has_power()) + lightambient.stop(src) + return + if(toggle_flicker) + if(status != LIGHT_OK) + addtimer(CALLBACK(src, PROC_REF(flicker), TRUE), flicker_time) + return + flickering = !flickering + if(flickering) + lightambient.start(src) + else + lightambient.stop(src) + if(random_flicker) + flicker_time = rand(flicker_time_lower_min, flicker_time_upper_max) + if(status != LIGHT_OK) + lightambient.stop(src) + flickering = FALSE + addtimer(CALLBACK(src, PROC_REF(flicker), TRUE), flicker_time) + return + light_flicker_state = !light_flicker_state + if(!light_flicker_state) + flick("[base_icon_state]_flick_off", src) + //delay the power change long enough to get the flick() animation off + addtimer(CALLBACK(src, PROC_REF(flicker_power_state)), 0.3 SECONDS) + else + flick("[base_icon_state]_flick_on", src) + addtimer(CALLBACK(src, PROC_REF(flicker_power_state)), 0.3 SECONDS) + flicker_time = flicker_time * 2 //for effect it's best if the amount of time we spend off is more than the time we spend on + if(!flickering) + return + addtimer(CALLBACK(src, PROC_REF(flicker)), flicker_time) + +///proc to toggle power on and off for light +/obj/machinery/light/proc/flicker_power_state(turn_on = TRUE, turn_off = FALSE) + if(!light_flicker_state) + pick(playsound(loc, 'sound/effects/lightfizz.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz2.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz3.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz4.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz5.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz6.ogg', 10, TRUE)) + update(FALSE) + else + pick(playsound(loc, 'sound/effects/lightfizz.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz2.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz3.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz4.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz5.ogg', 10, TRUE), playsound(loc, 'sound/effects/lightfizz6.ogg', 10, TRUE)) + turn_light(null, FALSE) + +///break the light and make sparks if was on /obj/machinery/light/proc/broken(skip_sound_and_sparks = 0) if(status == LIGHT_EMPTY) return @@ -540,13 +393,14 @@ if(!skip_sound_and_sparks) if(status == LIGHT_OK || status == LIGHT_BURNED) playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) -// if(on) -// var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread -// s.set_up(3, 1, src) -// s.start() + if(status == LIGHT_OK && has_power()) + var/datum/effect_system/spark_spread/spark_spread = new /datum/effect_system/spark_spread(src) + spark_spread.set_up(3, 1, loc) + spark_spread.start() status = LIGHT_BROKEN update() +///Fixes the light /obj/machinery/light/proc/fix() if(status == LIGHT_OK) return @@ -554,51 +408,7 @@ brightness = initial(brightness) update() -// explosion effect -// destroy the whole light fixture or just shatter it - -/obj/machinery/light/ex_act(severity) - switch(severity) - if(EXPLODE_DEVASTATE) - qdel(src) - return - if(EXPLODE_HEAVY) - if (prob(75)) - broken() - if(EXPLODE_LIGHT) - if (prob(50)) - broken() - if(EXPLODE_WEAK) - if (prob(25)) - broken() - - -//timed process -//use power -#define LIGHTING_POWER_FACTOR 20 //20W per unit luminosity - -/* -/obj/machinery/light/process()//TODO: remove/add this from machines to save on processing as needed ~Carn PRIORITY - if(on) - use_power(luminosity * LIGHTING_POWER_FACTOR, LIGHT) -*/ - -// called when area power state changes -/obj/machinery/light/power_change() - var/area/A = get_area(src) - if(flickering) - lightambient.start(src) - addtimer(CALLBACK(src, PROC_REF(flicker)), flicker_time) - turn_light(null, (A.lightswitch && A.power_light)) - -// called when on fire - -/obj/machinery/light/fire_act(exposed_temperature, exposed_volume) - if(prob(max(0, exposed_temperature - 673))) //0% at <400C, 100% at >500C - broken() - -// explode the light - +///Blows up the light /obj/machinery/light/proc/explode() broken() // break it first to give a warning addtimer(CALLBACK(src, PROC_REF(delayed_explosion)), 0.5 SECONDS) @@ -607,135 +417,68 @@ explosion(loc, 0, 1, 3, 0, 2) qdel(src) -// the light item -// can be tube or bulb subtypes -// will fit into empty /obj/machinery/light of the corresponding type +//types +/obj/machinery/light/mainship/Initialize(mapload) + . = ..() + GLOB.mainship_lights += src -/obj/item/light_bulb - icon = 'icons/obj/lighting.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/inhands/equipment/lights_left.dmi', - slot_r_hand_str = 'icons/mob/inhands/equipment/lights_right.dmi', - ) - force = 2 - throwforce = 5 - w_class = WEIGHT_CLASS_SMALL - var/status = 0 // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN - var/base_state - var/switchcount = 0 // number of times switched - var/rigged = 0 // true if rigged to explode - var/brightness = 2 //how much light it gives off - -/obj/item/light_bulb/throw_impact(atom/hit_atom) +/obj/machinery/light/mainship/Destroy() . = ..() - if(!.) - return - shatter() - -/obj/item/light_bulb/tube - name = "light tube" - desc = "A replacement light tube." - icon_state = "ltube" - base_state = "ltube" - item_state = "c_tube" - brightness = 8 - -/obj/item/light_bulb/tube/large - w_class = WEIGHT_CLASS_SMALL - name = "large light tube" - brightness = 15 - -/obj/item/light_bulb/bulb - name = "light bulb" - desc = "A replacement light bulb." - icon_state = "lbulb" - base_state = "lbulb" - brightness = 5 - -/obj/item/light_bulb/bulb/attack_turf(turf/T, mob/living/user) - var/turf/open/floor/light/light_tile = T - if(!istype(light_tile)) - return - if(status != LIGHT_OK) - to_chat(user, span_notice("The replacement bulb is broken.")) - return - var/obj/item/stack/tile/light/existing_bulb = light_tile.floor_tile - if(existing_bulb.state == LIGHT_TILE_OK) - to_chat(user, span_notice("The lightbulb seems fine, no need to replace it.")) - return + GLOB.mainship_lights -= src - user.drop_held_item(src) - qdel(src) - existing_bulb.state = 0 - light_tile.update_icon() - to_chat(user, span_notice("You replace the light bulb.")) +/obj/machinery/light/mainship/small + icon_state = "bulb_empty" + base_icon_state = "bulb" + fitting = "bulb" + brightness = 4 + desc = "A small lighting fixture." + light_type = /obj/item/light_bulb/bulb +/obj/machinery/light/red + base_icon_state = "tube_red" + light_color = LIGHT_COLOR_FLARE + brightness = 3 + bulb_power = 0.5 + bulb_colour = LIGHT_COLOR_FLARE -// update the icon state and description of the light +// the smaller bulb light fixture -/obj/item/light_bulb/proc/update() - switch(status) - if(LIGHT_OK) - icon_state = base_state - desc = "A replacement [name]." - if(LIGHT_BURNED) - icon_state = "[base_state]-burned" - desc = "A burnt-out [name]." - if(LIGHT_BROKEN) - icon_state = "[base_state]-broken" - desc = "A broken [name]." +/obj/machinery/light/small + icon_state = "bulb_empty" + base_icon_state = "bulb" + fitting = "bulb" + brightness = 4 + desc = "A small lighting fixture." + light_type = /obj/item/light_bulb/bulb +/obj/machinery/light/spot + name = "spotlight" + fitting = "large tube" + light_type = /obj/item/light_bulb/tube/large + brightness = 12 -/obj/item/light_bulb/Initialize(mapload) +/obj/machinery/light/built/Initialize(mapload) . = ..() - switch(name) - if("light tube") - brightness = rand(6,9) - if("light bulb") - brightness = rand(4,6) - update() + status = LIGHT_EMPTY + update(FALSE) -// attack bulb/tube with object -// if a syringe, can inject phoron to make it explode -/obj/item/light_bulb/attackby(obj/item/I, mob/user, params) +/obj/machinery/light/small/built/Initialize(mapload) . = ..() - if(.) - return - - if(istype(I, /obj/item/reagent_containers/syringe)) - var/obj/item/reagent_containers/syringe/S = I - - to_chat(user, "You inject the solution into the [src].") - - if(S.reagents.has_reagent(/datum/reagent/toxin/phoron, 5)) - rigged = TRUE - - S.reagents.clear_reagents() - -// called after an attack with a light item -// shatter light, unless it was an attempt to put it in a light socket -// now only shatter if the intent was harm - -/obj/item/light_bulb/afterattack(atom/target, mob/user, proximity) - if(!proximity) - return - if(istype(target, /obj/machinery/light)) - return - if(user.a_intent != INTENT_HARM) - return - - shatter() + status = LIGHT_EMPTY + update(FALSE) -/obj/item/light_bulb/proc/shatter() - if(status == LIGHT_OK || status == LIGHT_BURNED) - src.visible_message(span_warning(" [name] shatters."),span_warning(" You hear a small glass object shatter.")) - status = LIGHT_BROKEN - force = 5 - sharp = IS_SHARP_ITEM_SIMPLE - playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) - update() +/obj/machinery/light/floor + name = "floor light" + desc = "A tube light fixture set into the floor. Rated for foot traffic." + icon_state = "floortube_empty" + base_icon_state = "floortube" + layer = HOLOPAD_LAYER + fitting = "large tube" + light_type = /obj/item/light_bulb/tube/large + brightness = 12 +//not directly related stuff /obj/machinery/landinglight name = "landing light" icon = 'icons/obj/landinglights.dmi' diff --git a/code/modules/power/lighting_frame.dm b/code/modules/power/lighting_frame.dm new file mode 100644 index 0000000000000..4e51eb57a65d4 --- /dev/null +++ b/code/modules/power/lighting_frame.dm @@ -0,0 +1,122 @@ +/obj/machinery/light_construct + name = "light fixture frame" + desc = "A light fixture under construction." + icon = 'icons/obj/lighting.dmi' + icon_state = "tube-construct-stage1" + anchored = TRUE + layer = FLY_LAYER + ///build stage + var/stage = 1 + ///What kind of bulb its intended for + var/fixture_type = "tube" + ///Quantity of metal refunded on deconstruction + var/sheets_refunded = 2 + +/obj/machinery/light_construct/Initialize(mapload) + . = ..() + if(fixture_type == "bulb") + icon_state = "bulb-construct-stage1" + +/obj/machinery/light_construct/examine(mob/user) + . = ..() + switch(stage) + if(1) + . += "It's an empty frame." + if(2) + . += "It's wired." + if(3) + . += "The casing is closed." + + +/obj/machinery/light_construct/attackby(obj/item/I, mob/user, params) + . = ..() + if(.) + return + + if(iswrench(I)) + if(stage == 1) + playsound(loc, 'sound/items/ratchet.ogg', 25, 1) + to_chat(user, "You begin deconstructing [src].") + if(!do_after(usr, 30, NONE, src, BUSY_ICON_BUILD)) + return + new /obj/item/stack/sheet/metal(get_turf(loc), sheets_refunded) + user.visible_message("[user] deconstructs [src].", \ + "You deconstruct [src].", "You hear a noise.") + playsound(loc, 'sound/items/deconstruct.ogg', 25, 1) + qdel(src) + else if(stage == 2) + to_chat(user, "You have to remove the wires first.") + return + else if(stage == 3) + to_chat(user, "You have to unscrew the case first.") + return + + else if(iswirecutter(I)) + if(stage != 2) + return + stage = 1 + switch(fixture_type) + if("tube") + icon_state = "tube-construct-stage1" + if("bulb") + icon_state = "bulb-construct-stage1" + new /obj/item/stack/cable_coil(get_turf(loc), 1, "red") + user.visible_message("[user.name] removes the wiring from [src].", \ + "You remove the wiring from [src].", "You hear a noise.") + playsound(loc, 'sound/items/wirecutter.ogg', 25, 1) + + else if(iscablecoil(I)) + var/obj/item/stack/cable_coil/coil = I + + if(stage != 1) + return + + if(!coil.use(1)) + return + + switch(fixture_type) + if("tube") + icon_state = "tube-construct-stage2" + if("bulb") + icon_state = "bulb-construct-stage2" + stage = 2 + user.visible_message("[user] adds wires to [src].", \ + "You add wires to [src].") + + else if(isscrewdriver(I)) + if(stage != 2) + return + + switch(fixture_type) + if("tube") + icon_state = "tube_empty" //whygod + if("bulb") + icon_state = "bulb_empty" + + stage = 3 + user.visible_message("[user] closes [src]'s casing.", \ + "You close [src]'s casing.", "You hear a noise.") + playsound(loc, 'sound/items/screwdriver.ogg', 25, 1) + + var/obj/machinery/light/newlight + switch(fixture_type) + if("tube") + newlight = new /obj/machinery/light/built(loc) + if("bulb") + newlight = new /obj/machinery/light/small/built(loc) + else + qdel(src) //what did you do + + newlight.setDir(dir) + qdel(src) + + +/obj/machinery/light_construct/small + name = "small light fixture frame" + desc = "A small light fixture under construction." + icon = 'icons/obj/lighting.dmi' + icon_state = "bulb-construct-stage1" + anchored = TRUE + stage = 1 + fixture_type = "bulb" + sheets_refunded = 1 diff --git a/code/modules/projectiles/ammo_datums.dm b/code/modules/projectiles/ammo_datums.dm index fe3d4b5305bec..387df61544de9 100644 --- a/code/modules/projectiles/ammo_datums.dm +++ b/code/modules/projectiles/ammo_datums.dm @@ -1205,7 +1205,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh hud_state = "sniper_flak" damage = 90 penetration = 0 - sundering = 15 + sundering = 30 airburst_multiplier = 0.5 /datum/ammo/bullet/sniper/flak/on_hit_mob(mob/victim, obj/projectile/proj) @@ -3096,12 +3096,13 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh hud_state = "laser_spread" bonus_projectiles_type = /datum/ammo/energy/lasgun/marine/blast/spread bonus_projectiles_amount = 2 - bonus_projectiles_scatter = 5 + bonus_projectiles_scatter = 10 accuracy_var_low = 9 accuracy_var_high = 9 - accurate_range = 5 + accurate_range = 3 max_range = 8 damage = 35 + damage_falloff = 8 penetration = 20 sundering = 1 hitscan_effect_icon = "pu_laser" diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 402276f43088d..35d2ab9c47152 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -211,7 +211,7 @@ caliber = source.caliber default_ammo = source.default_ammo -/obj/item/ammo_magazine/flamer_fire_act(burnlevel) +/obj/item/ammo_magazine/fire_act(burn_level) if(!current_rounds) return explosion(loc, 0, 0, 0, 1, 1, throw_range = FALSE) @@ -464,7 +464,7 @@ Turn() or Shift() as there is virtually no overhead. ~N qdel(AM) //explosion when using flamer procs. -/obj/item/big_ammo_box/flamer_fire_act(burnlevel) +/obj/item/big_ammo_box/fire_act(burn_level) if(!bullet_amount) return explosion(loc, 0, 0, 1, 0, 2, throw_range = FALSE) //blow it up. diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm index 32d4500c0d15b..ab009bbbb1e89 100644 --- a/code/modules/projectiles/gun_helpers.dm +++ b/code/modules/projectiles/gun_helpers.dm @@ -124,9 +124,9 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w unload(user) if(!do_after(user, tac_reload_time, IGNORE_USER_LOC_CHANGE, new_magazine) && loc == user) return - if(istype(new_magazine.loc, /obj/item/storage)) + if(new_magazine.item_flags & IN_STORAGE) var/obj/item/storage/S = new_magazine.loc - S.remove_from_storage(new_magazine, get_turf(user), user) + S.storage_datum.remove_from_storage(new_magazine, get_turf(user), user) if(!CHECK_BITFIELD(get_magazine_features_flags(new_magazine), MAGAZINE_WORN)) user.put_in_any_hand_if_possible(new_magazine) reload(new_magazine, user) diff --git a/code/modules/projectiles/gun_system.dm b/code/modules/projectiles/gun_system.dm index 8f167412eac73..19be29f98a04d 100644 --- a/code/modules/projectiles/gun_system.dm +++ b/code/modules/projectiles/gun_system.dm @@ -1309,9 +1309,11 @@ (!((loc == user) || (master_gun?.loc == user)) || (new_mag.loc != user))) to_chat(user, span_warning("You need to be carrying both [src] and [new_mag] to connect them!")) return FALSE - if(get_magazine_reload_delay(new_mag) > 0 && user && !force) + var/reload_delay = get_magazine_reload_delay(new_mag) + if(reload_delay > 0 && user && !force) + reload_delay -= reload_delay * 0.25 * min(gun_user.skills.getRating(gun_skill_category), 2) to_chat(user, span_notice("You begin reloading [src] with [new_mag].")) - if(!do_after(user, get_magazine_reload_delay(new_mag), NONE, user)) + if(!do_after(user, reload_delay, NONE, user)) to_chat(user, span_warning("Your reload was interupted!")) return FALSE if(CHECK_BITFIELD(reciever_flags, AMMO_RECIEVER_ROTATES_CHAMBER)) @@ -1522,7 +1524,7 @@ return make_casing() -///Generates a casing. +///Generates a casing /obj/item/weapon/gun/proc/make_casing(obj/item/magazine, after_fire = TRUE) if(!type_of_casings || (current_chamber_position > length(chamber_items) && after_fire) || (!CHECK_BITFIELD(reciever_flags, AMMO_RECIEVER_MAGAZINES) && !CHECK_BITFIELD(reciever_flags, AMMO_RECIEVER_HANDFULS))) return @@ -1687,6 +1689,7 @@ // \\ //---------------------------------------------------------- +///Checks if the gun can be fired /obj/item/weapon/gun/proc/able_to_fire(mob/user) if(!user || user.incapacitated() || user.lying_angle || !isturf(user.loc)) return @@ -1733,19 +1736,9 @@ return FALSE return TRUE +///Checks if the gun is on cooldown /obj/item/weapon/gun/proc/gun_on_cooldown(mob/user) var/added_delay = fire_delay - if(user) - if(user.skills.getRating(SKILL_FIREARMS) < SKILL_FIREARMS_DEFAULT) - added_delay += 3 //untrained humans fire more slowly. - else - switch(gun_skill_category) - if(SKILL_HEAVY_WEAPONS) - if(fire_delay > 1 SECONDS) //long delay to fire - added_delay = max(fire_delay - 3 * user.skills.getRating(gun_skill_category), 6) - if(SKILL_SMARTGUN) - if(user.skills.getRating(gun_skill_category) < 0) - added_delay -= 2 * user.skills.getRating(gun_skill_category) var/delay = last_fired + added_delay if(gun_firemode == GUN_FIREMODE_BURSTFIRE) delay += extra_delay @@ -1757,6 +1750,7 @@ to_chat(user, span_warning("[src] is not ready to fire again!")) return TRUE +///Plays firing sound when firing /obj/item/weapon/gun/proc/play_fire_sound(mob/user) //Guns with low ammo have their firing sound var/firing_sndfreq = CHECK_BITFIELD(gun_features_flags, GUN_NO_PITCH_SHIFT_NEAR_EMPTY) ? FALSE : ((max(rounds, 1) / (max_rounds ? max_rounds : max_shells)) > 0.25) ? FALSE : 55000 @@ -1768,7 +1762,7 @@ return playsound(user, fire_sound, 60, firing_sndfreq ? TRUE : FALSE, frequency = firing_sndfreq) - +///Applies gun modifiers to a projectile before firing /obj/item/weapon/gun/proc/apply_gun_modifiers(obj/projectile/projectile_to_fire, atom/target, firer) projectile_to_fire.shot_from = src projectile_to_fire.damage *= damage_mult @@ -1842,6 +1836,7 @@ if(shooter_human.marksman_aura) gun_accuracy_mod += 10 + max(5, shooter_human.marksman_aura * 5) //Accuracy bonus from active focus order +///Generates screenshake if the gun has recoil /obj/item/weapon/gun/proc/simulate_recoil(recoil_bonus = 0, firing_angle) if(CHECK_BITFIELD(item_flags, IS_DEPLOYED) || !gun_user) return TRUE @@ -1867,12 +1862,14 @@ recoil_camera(gun_user, total_recoil + 1, (total_recoil * recoil_backtime_multiplier)+1, total_recoil, actual_angle) return TRUE +///Turns off gun fire lighting /obj/item/weapon/gun/proc/reset_light_range(lightrange) set_light_range(lightrange) set_light_color(initial(light_color)) if(lightrange <= 0) set_light_on(FALSE) +///Removes muzzle flash viscontents /obj/item/weapon/gun/proc/remove_muzzle_flash(atom/movable/flash_loc, atom/movable/vis_obj/effect/muzzle_flash/muzzle_flash) if(!QDELETED(flash_loc)) flash_loc.vis_contents -= muzzle_flash diff --git a/code/modules/projectiles/guns/flamer.dm b/code/modules/projectiles/guns/flamer.dm index 78dbe81dc5317..62f842b310fed 100644 --- a/code/modules/projectiles/guns/flamer.dm +++ b/code/modules/projectiles/guns/flamer.dm @@ -542,7 +542,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) ///Effects applied to a mob that crosses a burning turf /obj/flamer_fire/proc/on_cross(datum/source, mob/living/M, oldloc, oldlocs) if(istype(M)) - M.flamer_fire_act(burnlevel) + M.fire_act(burnlevel) /obj/flamer_fire/effect_smoke(obj/effect/particle_effect/smoke/S) . = ..() @@ -575,7 +575,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) return for(var/mob/living/C in get_turf(src)) - C.flamer_fire_act(fire_stacks) + C.fire_act(fire_stacks) C.take_overall_damage(fire_damage, BURN, FIRE, updating_health = TRUE) /obj/flamer_fire/proc/updateicon() @@ -613,7 +613,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) qdel(src) return - T.flamer_fire_act(burnlevel) + T.fire_act(burnlevel) var/j = 0 for(var/i in T) @@ -622,7 +622,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) var/atom/A = i if(QDELETED(A)) //The destruction by fire of one atom may destroy others in the same turf. continue - A.flamer_fire_act(burnlevel) + A.fire_act(burnlevel) firelevel -= 2 //reduce the intensity by 2 per tick diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index 9b04d79484b7c..53b7e942387fa 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -5,14 +5,16 @@ icon = 'icons/Marine/marine-hmg.dmi' icon_state = "crate" w_class = WEIGHT_CLASS_HUGE - storage_slots = 7 - bypass_w_limit = list( + +/obj/item/storage/box/hsg_102/Initialize(mapload) + . = ..() + storage_datum.storage_slots = 7 + storage_datum.storage_type_limits = list( /obj/item/weapon/gun/hsg_102, /obj/item/ammo_magazine/hsg_102, ) -/obj/item/storage/box/hsg_102/Initialize(mapload) - . = ..() +/obj/item/storage/box/hsg_102/PopulateContents() new /obj/item/weapon/gun/hsg_102(src) //gun itself new /obj/item/ammo_magazine/hsg_102(src) //ammo for the gun @@ -577,22 +579,20 @@ deployable_item = /obj/machinery/deployable/mounted/moveable/atgun /obj/machinery/deployable/mounted/moveable/atgun - var/obj/item/storage/internal/ammo_rack/sponson = /obj/item/storage/internal/ammo_rack resistance_flags = XENO_DAMAGEABLE|UNACIDABLE coverage = 85 //has a shield anchor_time = 1 SECONDS + ///The internal storage of our atgun + var/obj/item/storage/atgun_ammo_rack/sponson = /obj/item/storage/atgun_ammo_rack + +/obj/item/storage/atgun_ammo_rack + storage_type = /datum/storage/internal/ammo_rack /obj/machinery/deployable/mounted/moveable/atgun/Destroy() if(sponson) QDEL_NULL(sponson) return ..() -/obj/item/storage/internal/ammo_rack - storage_slots = 10 - max_storage_space = 40 - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list(/obj/item/ammo_magazine/standard_atgun) - /obj/machinery/deployable/mounted/moveable/atgun/Initialize(mapload) . = ..() sponson = new sponson(src) @@ -603,17 +603,26 @@ balloon_alert(user, "Busy manning!") return - return . = ..() + if(!sponson.attackby(I, user, params)) + return ..() /obj/machinery/deployable/mounted/moveable/atgun/attack_hand_alternate(mob/living/user) - return sponson.open(user) + if(user.interactee == src) + balloon_alert(user, "Busy manning!") + return -/obj/item/storage/internal/ammo_rack/handle_mousedrop(mob/user, obj/over_object) - if(!ishuman(user) || user.lying_angle || user.incapacitated()) + return sponson.attack_hand_alternate(user) + +/obj/machinery/deployable/mounted/moveable/atgun/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + if(!ishuman(usr) || usr.lying_angle || usr.incapacitated()) return FALSE - if(over_object == user && Adjacent(user)) //This must come before the screen objects only block - open(user) + if(usr.interactee == src) + balloon_alert(usr, "Busy manning!") + return + + if(over == usr && Adjacent(usr)) //This must come before the screen objects only block + sponson.storage_datum.open(usr) return FALSE /obj/machinery/deployable/mounted/moveable/atgun/ex_act(severity) diff --git a/code/modules/projectiles/guns/sentries.dm b/code/modules/projectiles/guns/sentries.dm index e98da3b19c802..1d093a5e08d58 100644 --- a/code/modules/projectiles/guns/sentries.dm +++ b/code/modules/projectiles/guns/sentries.dm @@ -36,20 +36,9 @@ desc = "A large case containing all you need to set up an automated sentry." icon_state = "sentry_case" w_class = WEIGHT_CLASS_HUGE - max_w_class = WEIGHT_CLASS_HUGE - storage_slots = 6 - max_storage_space = 16 - can_hold = list( - /obj/item/weapon/gun/sentry, - /obj/item/ammo_magazine/sentry, - ) - bypass_w_limit = list( - /obj/item/weapon/gun/sentry, - /obj/item/ammo_magazine/sentry, - ) + storage_type = /datum/storage/box/crate/sentry -/obj/item/storage/box/crate/sentry/Initialize(mapload) - . = ..() +/obj/item/storage/box/crate/sentry/PopulateContents() new /obj/item/weapon/gun/sentry/big_sentry(src) new /obj/item/ammo_magazine/sentry(src) @@ -227,14 +216,16 @@ desc = "A large case containing all you need to set up an ST-580 point defense sentry." icon_state = "sentry_mini_case" w_class = WEIGHT_CLASS_HUGE - storage_slots = 6 - can_hold = list( - /obj/item/weapon/gun/sentry/mini, - /obj/item/ammo_magazine/minisentry, - ) /obj/item/storage/box/crate/minisentry/Initialize(mapload, ...) . = ..() + storage_datum.storage_slots = 6 + storage_datum.set_holdable(can_hold_list = list( + /obj/item/weapon/gun/sentry/mini, + /obj/item/ammo_magazine/minisentry, + )) + +/obj/item/storage/box/crate/minisentry/PopulateContents() new /obj/item/weapon/gun/sentry/mini(src) new /obj/item/ammo_magazine/minisentry(src) new /obj/item/ammo_magazine/minisentry(src) @@ -330,20 +321,24 @@ desc = "A large case containing all you need to set up an automated sentry." icon_state = "sentry_case" w_class = WEIGHT_CLASS_HUGE - max_w_class = WEIGHT_CLASS_HUGE - storage_slots = 6 - max_storage_space = 16 - can_hold = list( - /obj/item/weapon/gun/sentry/sniper_sentry, - /obj/item/ammo_magazine/sentry/sniper, - ) - bypass_w_limit = list( - /obj/item/weapon/gun/sentry/sniper_sentry, - /obj/item/ammo_magazine/sentry/sniper, - ) /obj/item/storage/box/crate/sentry_sniper/Initialize(mapload) . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_HUGE + storage_datum.storage_slots = 6 + storage_datum.max_storage_space = 16 + storage_datum.set_holdable( + can_hold_list = list( + /obj/item/weapon/gun/sentry/sniper_sentry, + /obj/item/ammo_magazine/sentry/sniper, + ), + storage_type_limits_list = list( + /obj/item/weapon/gun/sentry/sniper_sentry, + /obj/item/ammo_magazine/sentry/sniper, + ) + ) + +/obj/item/storage/box/crate/sentry_sniper/PopulateContents() new /obj/item/weapon/gun/sentry/sniper_sentry(src) new /obj/item/ammo_magazine/sentry/sniper(src) @@ -378,20 +373,24 @@ desc = "A large case containing all you need to set up an automated sentry." icon_state = "sentry_case" w_class = WEIGHT_CLASS_HUGE - max_w_class = WEIGHT_CLASS_HUGE - storage_slots = 6 - max_storage_space = 16 - can_hold = list( - /obj/item/weapon/gun/sentry/shotgun_sentry, - /obj/item/ammo_magazine/sentry/shotgun, - ) - bypass_w_limit = list( - /obj/item/weapon/gun/sentry/shotgun_sentry, - /obj/item/ammo_magazine/sentry/shotgun, - ) /obj/item/storage/box/crate/sentry_shotgun/Initialize(mapload) . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_HUGE + storage_datum.storage_slots = 6 + storage_datum.max_storage_space = 16 + storage_datum.set_holdable( + can_hold_list = list( + /obj/item/weapon/gun/sentry/shotgun_sentry, + /obj/item/ammo_magazine/sentry/shotgun, + ), + storage_type_limits_list = list( + /obj/item/weapon/gun/sentry/shotgun_sentry, + /obj/item/ammo_magazine/sentry/shotgun, + ) + ) + +/obj/item/storage/box/crate/sentry_shotgun/PopulateContents() new /obj/item/weapon/gun/sentry/shotgun_sentry(src) new /obj/item/ammo_magazine/sentry/shotgun(src) @@ -426,20 +425,23 @@ desc = "A large case containing all you need to set up an automated sentry." icon_state = "sentry_case" w_class = WEIGHT_CLASS_HUGE - max_w_class = WEIGHT_CLASS_HUGE - storage_slots = 6 - max_storage_space = 16 - can_hold = list( - /obj/item/weapon/gun/sentry/flamer_sentry, - /obj/item/ammo_magazine/sentry/flamer, - ) - bypass_w_limit = list( - /obj/item/weapon/gun/sentry/flamer_sentry, - /obj/item/ammo_magazine/sentry/flamer, - ) /obj/item/storage/box/crate/sentry_flamer/Initialize(mapload) . = ..() + storage_datum.max_w_class = WEIGHT_CLASS_HUGE + storage_datum.storage_slots = 6 + storage_datum.max_storage_space = 16 + storage_datum.set_holdable( + can_hold_list = list( + /obj/item/weapon/gun/sentry/flamer_sentry, + /obj/item/ammo_magazine/sentry/flamer, + ), + storage_type_limits_list = list( + /obj/item/weapon/gun/sentry/flamer_sentry, + /obj/item/ammo_magazine/sentry/flamer, + ) + ) + +/obj/item/storage/box/crate/sentry_flamer/PopulateContents() new /obj/item/weapon/gun/sentry/flamer_sentry(src) new /obj/item/ammo_magazine/sentry/flamer(src) - diff --git a/code/modules/projectiles/guns/specialist.dm b/code/modules/projectiles/guns/specialist.dm index 8c1a836bf0b8d..c3572c5725b03 100644 --- a/code/modules/projectiles/guns/specialist.dm +++ b/code/modules/projectiles/guns/specialist.dm @@ -994,7 +994,7 @@ Note that this means that snipers will have a slowdown of 3, due to the scope /obj/item/ammo_magazine/railgun/hvap, ) force = 40 - wield_delay = 1.2 SECONDS + wield_delay = 2.0 SECONDS attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 31, "rail_y" = 23, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14) attachable_allowed = list( /obj/item/attachable/magnetic_harness, diff --git a/code/modules/projectiles/magazines/sentries.dm b/code/modules/projectiles/magazines/sentries.dm index d21183d818e34..0a05e0fb9c6d5 100644 --- a/code/modules/projectiles/magazines/sentries.dm +++ b/code/modules/projectiles/magazines/sentries.dm @@ -2,7 +2,7 @@ name = "\improper M30 box magazine (10x28mm Caseless)" desc = "A drum of 50 10x28mm caseless rounds for the ST-571 sentry gun. Just feed it into the sentry gun's ammo port when its ammo is depleted." w_class = WEIGHT_CLASS_NORMAL - icon_state = "ua571c" + icon_state = "sentry" magazine_flags = NONE //can't be refilled or emptied by hand caliber = CALIBER_10X28 max_rounds = 500 @@ -22,6 +22,7 @@ name = "M30 box magazine (10x28mm Caseless)" desc = "A box of 50 10x28mm caseless rounds for the ST-571 Sentry Gun. Just feed it into the sentry gun's ammo port when its ammo is depleted." w_class = WEIGHT_CLASS_NORMAL + icon_state = "sentry" magazine_flags = NONE //can't be refilled or emptied by hand caliber = CALIBER_10X28 max_rounds = 500 diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm index ccbd0e95fcfff..bbb2c79cd9a27 100644 --- a/code/modules/projectiles/magazines/specialist.dm +++ b/code/modules/projectiles/magazines/specialist.dm @@ -88,7 +88,7 @@ name = "\improper generic high-explosive rocket" desc = "A precursor to all kinds of rocket ammo unfit for normal use. How did you get this anyway?" caliber = CALIBER_84MM - icon_state = "rocket" + icon_state = "rocket_he" w_class = WEIGHT_CLASS_NORMAL magazine_flags = MAGAZINE_REFUND_IN_CHAMBER max_rounds = 1 @@ -238,7 +238,7 @@ reload_delay = 30 /obj/item/ammo_magazine/internal/launcher/rocket/oneuse - name = "\improper 67mm internal tube" + name = "\improper 68mm internal tube" desc = "The internal tube of a one use rpg." caliber = CALIBER_68MM default_ammo = /datum/ammo/rocket/recoilless diff --git a/code/modules/projectiles/mounted.dm b/code/modules/projectiles/mounted.dm index e2055942df231..483acc160545c 100644 --- a/code/modules/projectiles/mounted.dm +++ b/code/modules/projectiles/mounted.dm @@ -72,7 +72,7 @@ /obj/machinery/deployable/mounted/attackby(obj/item/I, mob/user, params) //This handles reloading the gun, if its in acid cant touch it. . = ..() if(.) - return + return TRUE if(!ishuman(user)) return diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b78d432b7674e..0b3d62e10d9db 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -934,7 +934,7 @@ So if we are on the 32th absolute pixel coordinate we are on tile 1, but if we a return TRUE /mob/living/carbon/xenomorph/bullet_act(obj/projectile/proj) - if(issamexenohive(proj.firer)) //Aliens won't be harming allied aliens. + if(issamexenohive(proj.shot_from)) //Aliens won't be harming allied aliens. return return ..() diff --git a/code/modules/reagents/machinery/chem_dispenser.dm b/code/modules/reagents/machinery/chem_dispenser.dm index a77155acde16f..eb8bbaf793dea 100644 --- a/code/modules/reagents/machinery/chem_dispenser.dm +++ b/code/modules/reagents/machinery/chem_dispenser.dm @@ -118,6 +118,7 @@ flick(working_state,src) /obj/machinery/chem_dispenser/handle_atom_del(atom/movable/AM) + . = ..() if(AM == beaker) beaker = null diff --git a/code/modules/reagents/machinery/chem_master.dm b/code/modules/reagents/machinery/chem_master.dm index 8f2dff6b1c56c..bb1836eaa2e01 100644 --- a/code/modules/reagents/machinery/chem_master.dm +++ b/code/modules/reagents/machinery/chem_master.dm @@ -249,8 +249,8 @@ P.icon_state = "pill"+pillsprite reagents.trans_to(P,amount_per_pill) if(loaded_pill_bottle) - if(length(loaded_pill_bottle.contents) < loaded_pill_bottle.max_storage_space) - loaded_pill_bottle.handle_item_insertion(P, TRUE) + if(length(loaded_pill_bottle.contents) < loaded_pill_bottle.storage_datum.max_storage_space) + loaded_pill_bottle.storage_datum.handle_item_insertion(P, TRUE) updateUsrDialog() else if (href_list["createbottle"]) @@ -363,13 +363,13 @@ if(!beaker) dat = "Please insert beaker.
" if(loaded_pill_bottle) - dat += "Eject Pill Bottle \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.max_storage_space]\]

" + dat += "Eject Pill Bottle \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.storage_datum.max_storage_space]\]

" else dat += "No pill bottle inserted.

" else dat += "Eject beaker and Clear Buffer
" if(loaded_pill_bottle) - dat += "Eject Pill Bottle \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.max_storage_space]\]

" + dat += "Eject Pill Bottle \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.storage_datum.max_storage_space]\]

" else dat += "No pill bottle inserted.

" if(!beaker.reagents.total_volume) diff --git a/code/modules/reagents/reagents/drink.dm b/code/modules/reagents/reagents/drink.dm index b61028aebbd10..80b28130717a4 100644 --- a/code/modules/reagents/reagents/drink.dm +++ b/code/modules/reagents/reagents/drink.dm @@ -62,13 +62,10 @@ /datum/reagent/consumable/drink/carrotjuice/on_mob_life(mob/living/L, metabolism) L.adjust_blurriness(-1) L.adjust_blindness(-1) - switch(current_cycle) - if(1 to 20) - //nothing - if(21 to INFINITY) - if(prob(current_cycle-10) && iscarbon(L)) - var/mob/living/carbon/C = L - C.disabilities &= ~NEARSIGHTED + if(current_cycle > 20) + if(prob(current_cycle-10) && iscarbon(L)) + var/mob/living/carbon/C = L + C.disabilities &= ~NEARSIGHTED return ..() /datum/reagent/consumable/drink/berryjuice diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index d7f631f50a29b..a90371fa3018c 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -117,7 +117,7 @@ var/obj/item/storage/bag/trash/T = I to_chat(user, span_notice("You empty the bag into [src].")) for(var/obj/item/O in T.contents) - T.remove_from_storage(O, src, user) + T.storage_datum.remove_from_storage(O, src, user) T.update_icon() update() diff --git a/code/modules/recycling/recycler.dm b/code/modules/recycling/recycler.dm index 551b82d21eeef..f654ff80bf0d6 100644 --- a/code/modules/recycling/recycler.dm +++ b/code/modules/recycling/recycler.dm @@ -27,7 +27,7 @@ if(istype(I, /obj/item/storage)) var/obj/item/storage/S = I for(var/obj/item/X in S.contents) - S.remove_from_storage(X, loc) + S.storage_datum.remove_from_storage(X, loc) recycle(X) qdel(I) diff --git a/code/modules/reqs/supply.dm b/code/modules/reqs/supply.dm index d04bae357a943..1216270950105 100644 --- a/code/modules/reqs/supply.dm +++ b/code/modules/reqs/supply.dm @@ -1,7 +1,8 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /mob/living, /obj/item/disk/nuclear, - /obj/item/radio/beacon + /obj/item/radio/beacon, + /obj/vehicle, ))) /datum/supply_order @@ -45,6 +46,8 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( var/faction = FACTION_TERRAGOV /// Id of the home docking port var/home_id = "supply_home" + ///prefix for railings and gear todo should probbaly be defines instead? + var/railing_gear_name = "supply" /obj/docking_port/mobile/supply/Destroy(force) for(var/i in railings) @@ -77,11 +80,11 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/docking_port/mobile/supply/register() . = ..() for(var/obj/machinery/gear/G in GLOB.machines) - if(G.id == "supply_elevator_gear") + if(G.id == (railing_gear_name+"_elevator_gear")) gears += G RegisterSignal(G, COMSIG_QDELETING, PROC_REF(clean_gear)) for(var/obj/machinery/door/poddoor/railing/R in GLOB.machines) - if(R.id == "supply_elevator_railing") + if(R.id == (railing_gear_name+"_elevator_railing")) railings += R RegisterSignal(R, COMSIG_QDELETING, PROC_REF(clean_railing)) R.linked_pad = src @@ -127,7 +130,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( return 2 return ..() -/obj/docking_port/mobile/supply/proc/buy(mob/user) +/obj/docking_port/mobile/supply/proc/buy(mob/user, datum/supply_ui/supply_ui) if(!length(SSpoints.shoppinglist[faction])) return log_game("Supply pack orders have been purchased by [key_name(user)]") @@ -469,7 +472,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( addtimer(CALLBACK(supply_shuttle, TYPE_PROC_REF(/obj/docking_port/mobile/supply, sell)), 15 SECONDS) else var/obj/docking_port/D = SSshuttle.getDock(home_id) - supply_shuttle.buy(usr) + supply_shuttle.buy(usr, src) playsound(D.return_center_turf(), 'sound/machines/elevator_move.ogg', 50, 0) SSshuttle.moveShuttle(shuttle_id, home_id, TRUE) . = TRUE @@ -618,3 +621,298 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( if(!supply_interface) supply_interface = new(src) return supply_interface.interact(user) + +/obj/docking_port/mobile/supply/vehicle + railing_gear_name = "vehicle" + id = SHUTTLE_VEHICLE_SUPPLY + home_id = "vehicle_home" + +/obj/docking_port/mobile/supply/vehicle/buy(mob/user, datum/supply_ui/supply_ui) + var/datum/supply_ui/vehicles/veh_ui = supply_ui + if(!veh_ui || !veh_ui.current_veh_type) + return + var/obj/vehicle/sealed/armored/tanktype = veh_ui.current_veh_type + var/is_assault = initial(tanktype.armored_flags) & ARMORED_PURCHASABLE_ASSAULT + if(GLOB.purchased_tanks[user.faction]?["[is_assault]"]) + to_chat(usr, span_danger("A vehicle of this type has already been purchased!")) + return + if(!GLOB.purchased_tanks[user.faction]) + GLOB.purchased_tanks[user.faction] = list() + GLOB.purchased_tanks[user.faction]["[is_assault]"] += 1 + var/obj/vehicle/sealed/armored/tank = new tanktype(loc) + if(veh_ui.current_primary) + var/obj/item/armored_weapon/gun = new veh_ui.current_primary(loc) + gun.attach(tank, TRUE) + if(veh_ui.current_secondary) + var/obj/item/armored_weapon/gun = new veh_ui.current_secondary(loc) + gun.attach(tank, FALSE) + if(veh_ui.current_driver_mod) + var/obj/item/tank_module/mod = new veh_ui.current_driver_mod(loc) + mod.on_equip(tank) + if(veh_ui.current_gunner_mod) + var/obj/item/tank_module/mod = new veh_ui.current_gunner_mod(loc) + mod.on_equip(tank) + if(length(veh_ui.primary_ammo)) + var/turf/dumploc = get_step(get_step(loc, NORTH), NORTH) // todo should autoload depending on tank prolly + for(var/ammo in veh_ui.primary_ammo) + for(var/i=1 to veh_ui.primary_ammo[ammo]) + new ammo(dumploc) + if(length(veh_ui.secondary_ammo)) + var/turf/dumploc = get_step(get_step(loc, NORTH), NORTH) // todo should autoload depending on tank prolly + for(var/ammo in veh_ui.secondary_ammo) + for(var/i=1 to veh_ui.secondary_ammo[ammo]) + new ammo(dumploc) + +/obj/docking_port/stationary/supply/vehicle + id = "vehicle_home" + roundstart_template = /datum/map_template/shuttle/supply/vehicle + + + +GLOBAL_LIST_EMPTY(armored_gunammo) +GLOBAL_LIST_EMPTY(armored_modtypes) +GLOBAL_LIST_INIT(armored_guntypes, armored_init_guntypes()) +GLOBAL_LIST_EMPTY(purchased_tanks) +#define DEFAULT_MAX_ARMORED_AMMO 20 + +///im a lazy bum who cant use initial on lists, so we just load everything into a list +/proc/armored_init_guntypes() + . = list() + for(var/obj/vehicle/sealed/armored/vehtype AS in typesof(/obj/vehicle/sealed/armored)) + vehtype = new vehtype + GLOB.armored_modtypes[vehtype.type] = vehtype.permitted_mods + .[vehtype.type] = vehtype.permitted_weapons + qdel(vehtype) + for(var/obj/item/armored_weapon/gun AS in typesof(/obj/item/armored_weapon)) + gun = new gun + GLOB.armored_gunammo[gun.type] = gun.accepted_ammo + qdel(gun) + +/datum/supply_ui/vehicles + tgui_name = "VehicleSupply" + shuttle_id = SHUTTLE_VEHICLE_SUPPLY + home_id = "vehicle_home" + /// current selected vehicles typepath + var/current_veh_type + /// current selected primary weapons typepath + var/current_primary + /// current selected secondaryies typepath + var/current_secondary + /// current driver mod typepath + var/current_driver_mod + /// current gunner mod typepath + var/current_gunner_mod + /// current primary ammo list, type = count + var/list/primary_ammo = list() + /// current secondary ammo list, type = count + var/list/secondary_ammo = list() + +/datum/supply_ui/vehicles/ui_static_data(mob/user) + var/list/data = list() + for(var/obj/vehicle/sealed/armored/vehtype AS in typesof(/obj/vehicle/sealed/armored)) + var/flags = initial(vehtype.armored_flags) + + if(flags & ARMORED_PURCHASABLE_TRANSPORT) + if(user.skills.getRating(SKILL_LARGE_VEHICLE) < SKILL_LARGE_VEHICLE_EXPERIENCED) + continue + else if(flags & ARMORED_PURCHASABLE_ASSAULT) + if(user.skills.getRating(SKILL_LARGE_VEHICLE) < SKILL_LARGE_VEHICLE_VETERAN) + continue + else + continue + + data["vehicles"] += list(list("name" = initial(vehtype.name), "desc" = initial(vehtype.desc), "type" = "[vehtype]", "isselected" = (vehtype == current_veh_type))) + if(vehtype != current_veh_type) + continue + for(var/obj/item/armored_weapon/gun AS in GLOB.armored_guntypes[vehtype]) + var/primary_selected = (current_primary == gun) + var/secondary_selected = (current_secondary == gun) + if(initial(gun.weapon_slot) & MODULE_PRIMARY) + data["primaryWeapons"] += list(list( + "name" = initial(gun.name), + "desc" = initial(gun.desc), + "type" = gun, + "isselected" = primary_selected, + )) + if(primary_selected) + for(var/obj/item/ammo_magazine/mag AS in primary_ammo) + data["primaryammotypes"] += list(list( + "name" = initial(mag.name), + "type" = mag, + "current" = primary_ammo[mag], + "max" = DEFAULT_MAX_ARMORED_AMMO, //TODO make vehicle ammo dynamic instead of fixed number + )) + + if(initial(gun.weapon_slot) & MODULE_SECONDARY) + data["secondaryWeapons"] += list(list( + "name" = initial(gun.name), + "desc" = initial(gun.desc), + "type" = gun, + "isselected" = secondary_selected, + )) + if(secondary_selected) + for(var/obj/item/ammo_magazine/mag AS in secondary_ammo) + data["secondarymmotypes"] += list(list( + "name" = initial(mag.name), + "type" = mag, + "current" = secondary_ammo[mag], + "max" = DEFAULT_MAX_ARMORED_AMMO, //TODO make vehicle ammo dynamic instead of fixed number + )) + + for(var/obj/item/tank_module/mod AS in GLOB.armored_modtypes[vehtype]) + if(initial(mod.is_driver_module)) + data["driverModules"] += list(list( + "name" = initial(mod.name), + "desc" = initial(mod.desc), + "type" = mod, + "isselected" = (current_driver_mod == mod), + )) + else + data["gunnerModules"] += list(list( + "name" = initial(mod.name), + "desc" = initial(mod.desc), + "type" = mod, + "isselected" = (current_gunner_mod == mod), + )) + return data + +/datum/supply_ui/vehicles/ui_data(mob/living/user) + var/list/data = list() + if(supply_shuttle) + if(supply_shuttle?.mode == SHUTTLE_CALL) + if(is_mainship_level(supply_shuttle.destination.z)) + data["elevator"] = "Raising" + data["elevator_dir"] = "up" + else + data["elevator"] = "Lowering" + data["elevator_dir"] = "down" + else if(supply_shuttle?.mode == SHUTTLE_IDLE) + if(is_mainship_level(supply_shuttle.z)) + data["elevator"] = "Raised" + data["elevator_dir"] = "down" + else if(current_veh_type) + data["elevator"] = "Purchase" + data["elevator_dir"] = "store" + else + data["elevator"] = "Lowered" + data["elevator_dir"] = "up" + else + if(is_mainship_level(supply_shuttle.z)) + data["elevator"] = "Lowering" + data["elevator_dir"] = "down" + else + data["elevator"] = "Raising" + data["elevator_dir"] = "up" + else + data["elevator"] = "MISSING!" + return data + +/datum/supply_ui/vehicles/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("setvehicle") + var/newtype = text2path(params["type"]) + if(!ispath(newtype, /obj/vehicle/sealed/armored)) + return + var/obj/vehicle/sealed/armored/tank_type = newtype + var/is_assault = initial(tank_type.armored_flags) & ARMORED_PURCHASABLE_ASSAULT + if(GLOB.purchased_tanks[usr.faction]?["[is_assault]"]) + to_chat(usr, span_danger("A vehicle of this type has already been purchased!")) + return + current_veh_type = newtype + . = TRUE + + if("setprimary") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!(newtype in GLOB.armored_guntypes[current_veh_type])) + return + current_primary = newtype + var/list/assoc_cast = GLOB.armored_gunammo[newtype] + primary_ammo = assoc_cast.Copy() + for(var/ammo in primary_ammo) + primary_ammo[ammo] = 0 + . = TRUE + + if("setsecondary") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!(newtype in GLOB.armored_guntypes[current_veh_type])) + return + current_secondary = newtype + var/list/assoc_cast = GLOB.armored_gunammo[newtype] + secondary_ammo = assoc_cast.Copy() + for(var/ammo in secondary_ammo) + secondary_ammo[ammo] = 0 + . = TRUE + + if("set_ammo_primary") + if(!current_primary) + return + var/newtype = text2path(params["type"]) + if(!(newtype in primary_ammo)) + return + var/non_adjusted_total = 0 + for(var/ammo in primary_ammo) + if(ammo == newtype) + continue + non_adjusted_total += primary_ammo[ammo] + var/newvalue = clamp(params["new_value"], 0, DEFAULT_MAX_ARMORED_AMMO-non_adjusted_total) + primary_ammo[newtype] = newvalue + . = TRUE + + if("set_ammo_secondary") + if(!current_secondary) + return + var/newtype = text2path(params["type"]) + if(!(newtype in secondary_ammo)) + return + var/non_adjusted_total = 0 + for(var/ammo in secondary_ammo) + if(ammo == newtype) + continue + non_adjusted_total += secondary_ammo[ammo] + var/newvalue = clamp(params["new_value"], 0, DEFAULT_MAX_ARMORED_AMMO-non_adjusted_total) + secondary_ammo[newtype] = newvalue + . = TRUE + + if("set_driver_mod") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!ispath(newtype, /obj/item/tank_module)) + return + if(!(newtype in GLOB.armored_modtypes[current_veh_type])) + return + current_driver_mod = newtype + . = TRUE + + if("set_gunner_mod") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!ispath(newtype, /obj/item/tank_module)) + return + if(!(newtype in GLOB.armored_modtypes[current_veh_type])) + return + current_gunner_mod = newtype + . = TRUE + + if("deploy") + if(supply_shuttle.mode != SHUTTLE_IDLE) + to_chat(usr, span_danger("Elevator moving!")) + return + if(is_mainship_level(supply_shuttle.z)) + to_chat(usr, span_danger("Elevator raised. Lower to deploy vehicle.")) + return + supply_shuttle.buy(usr, src) + ui_act("send", params, ui, state) + SStgui.close_user_uis(usr, src) + + if(.) + update_static_data(usr) diff --git a/code/modules/reqs/supplypacks.dm b/code/modules/reqs/supplypacks.dm index 6d21d2b088941..dda40f467e3c0 100644 --- a/code/modules/reqs/supplypacks.dm +++ b/code/modules/reqs/supplypacks.dm @@ -299,7 +299,7 @@ WEAPONS /obj/item/ammo_magazine/standard_atgun, /obj/item/ammo_magazine/standard_atgun, ) - cost = 20 + cost = 40 /datum/supply_packs/weapons/antitankgunammo/apcr name = "AT-36 APCR Shell (x3)" @@ -308,16 +308,16 @@ WEAPONS /obj/item/ammo_magazine/standard_atgun/apcr, /obj/item/ammo_magazine/standard_atgun/apcr, ) - cost = 20 + cost = 40 /datum/supply_packs/weapons/antitankgunammo/he name = "AT-36 HE Shell (x3)" contains = list( /obj/item/ammo_magazine/standard_atgun/he, /obj/item/ammo_magazine/standard_atgun/he, - /obj/item/ammo_magazine/standard_atgun, + /obj/item/ammo_magazine/standard_atgun/he, ) - cost = 20 + cost = 40 /datum/supply_packs/weapons/antitankgunammo/beehive name = "AT-36 Beehive Shell (x3)" @@ -326,7 +326,7 @@ WEAPONS /obj/item/ammo_magazine/standard_atgun/beehive, /obj/item/ammo_magazine/standard_atgun/beehive, ) - cost = 20 + cost = 40 /datum/supply_packs/weapons/antitankgunammo/incendiary name = "AT-36 Napalm Shell (x3)" @@ -335,7 +335,7 @@ WEAPONS /obj/item/ammo_magazine/standard_atgun/incend, /obj/item/ammo_magazine/standard_atgun/incend, ) - cost = 20 + cost = 40 /datum/supply_packs/weapons/flak_gun name = "FK-88 Flak Gun" @@ -2453,27 +2453,27 @@ FACTORY /datum/supply_packs/factory/atgun_aphe_refill name = "AT-36 AP-HE shell assembly refill" contains = list(/obj/item/factory_refill/atgun_aphe_refill) - cost = 100 + cost = 200 /datum/supply_packs/factory/atgun_apcr_refill name = "AT-36 APCR shell assembly refill" contains = list(/obj/item/factory_refill/atgun_apcr_refill) - cost = 100 + cost = 200 /datum/supply_packs/factory/atgun_he_refill name = "AT-36 HE shell assembly refill" contains = list(/obj/item/factory_refill/atgun_he_refill) - cost = 100 + cost = 200 /datum/supply_packs/factory/atgun_beehive_refill name = "AT-36 Beehive shell assembly refill" contains = list(/obj/item/factory_refill/atgun_beehive_refill) - cost = 100 + cost = 200 /datum/supply_packs/factory/atgun_incend_refill name = "AT-36 Napalm shell assembly refill" contains = list(/obj/item/factory_refill/atgun_incend_refill) - cost = 100 + cost = 200 /datum/supply_packs/factory/heavy_isg_he_refill name = "FK-88 Flak HE shell assembly refill" diff --git a/code/modules/screen_alert/command_alert.dm b/code/modules/screen_alert/command_alert.dm index 089ccec2f1823..ac30723ec4b56 100644 --- a/code/modules/screen_alert/command_alert.dm +++ b/code/modules/screen_alert/command_alert.dm @@ -77,10 +77,11 @@ return for(var/mob/faction_receiver in alert_receivers) if(faction_receiver.faction == human_owner.faction || isdead(faction_receiver)) - faction_receiver.play_screen_text("COMMAND ANNOUNCEMENT:
" + text, /atom/movable/screen/text/screen_text/command_order) + var/faction_title = GLOB.faction_to_acronym[human_owner.faction] ? GLOB.faction_to_acronym[human_owner.faction] + " Command" : "Unknown Faction" + " Command" + faction_receiver.play_screen_text("[uppertext(faction_title)] ANNOUNCEMENT:
" + text, /atom/movable/screen/text/screen_text/command_order) to_chat(faction_receiver, assemble_alert( - title = "Command Announcement", - subtitle = "Sent by [human_owner.real_name]", + title = "[faction_title] Announcement", + subtitle = "Sent by [human_owner.job.title] [human_owner.real_name]", message = text )) SEND_SOUND(faction_receiver, S) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 56d3910e17cef..78a7d19ee3ec7 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -295,7 +295,7 @@ if(!T || T.x <= 10 || T.y <= 10 || T.x >= world.maxx - 10 || T.y >= world.maxy - 10) return SHUTTLE_DOCKER_BLOCKED var/area/turf_area = get_area(T) - if(turf_area.ceiling >= CEILING_OBSTRUCTED) + if(turf_area.ceiling >= CEILING_METAL) return SHUTTLE_DOCKER_BLOCKED // If it's one of our shuttle areas assume it's ok to be there if(shuttle_port.shuttle_areas[T.loc]) diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index e761b5270c66d..1a8f1a85e395d 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -63,6 +63,12 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate /************************************Machine rotate procs************************************/ +//override to avoid rotating multitile vehicles +/obj/vehicle/shuttleRotate(rotation, params) + if(hitbox) + params = NONE + return ..() + /obj/machinery/atmospherics/shuttleRotate(rotation, params) var/list/real_node_connect = getNodeConnects() for(var/i in 1 to device_type) diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 5c9dc4582b8fe..14bfc8971ad16 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -163,7 +163,7 @@ /datum/surgery_step/generic/clamp_bleeders/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/limb/affected, checks_only) if(..()) - if(affected.surgery_open_stage && !(affected.limb_status & LIMB_WOUND_CLAMPED)) + if(affected.surgery_open_stage && !(affected.limb_wound_status & LIMB_WOUND_CLAMPED)) return SURGERY_CAN_USE return SURGERY_CANNOT_USE @@ -293,7 +293,7 @@ min_duration = SUTURE_MIN_DURATION max_duration = SUTURE_MAX_DURATION ///Healing applied on step success, split between burn and brute - var/base_healing = 30 + var/base_healing = 37.5 /datum/surgery_step/generic/repair/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/limb/affected, checks_only) if(!..()) @@ -314,7 +314,7 @@ user.visible_message(span_notice("[user] sews some of the wounds on [target]'s [affected.display_name] shut.") , \ span_notice("You finish suturing some of the wounds on [target]'s [affected.display_name].") ) target.balloon_alert_to_viewers("Success") - var/skilled_healing = base_healing * max(user.skills.getPercent(SKILL_SURGERY, SKILL_SURGERY_EXPERT), 0.1) + var/skilled_healing = base_healing * max(user.skills.getPercent(SKILL_SURGERY, SKILL_SURGERY_MASTER), 0.1) var/burn_heal = min(skilled_healing, affected.burn_dam) var/brute_heal = max(skilled_healing - burn_heal, 0) affected.heal_limb_damage(brute_heal, burn_heal, updating_health = TRUE) //Corpses need their health updated manually since they don't do it themselves diff --git a/code/modules/unit_tests/README.md b/code/modules/unit_tests/README.md index 420c805fbf715..d4d45736ca403 100644 --- a/code/modules/unit_tests/README.md +++ b/code/modules/unit_tests/README.md @@ -39,7 +39,7 @@ Open `code/_compile_options.dm` and uncomment the following line. //#define UNIT_TESTS //If this is uncommented, we do a single run though of the game setup and tear down process with unit tests in between ``` -Then, run tgstation.dmb in Dream Daemon. Don't bother trying to connect, you won't need to. You'll be able to see the outputs of all the tests. You'll get to see which tests failed and for what reason. If they all pass, you're set! +Then, run tgmc.dmb in Dream Daemon. Don't bother trying to connect, you won't need to. You'll be able to see the outputs of all the tests. You'll get to see which tests failed and for what reason. If they all pass, you're set! ## How to think about tests diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 29b0991748b84..41f995c7389aa 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -43,9 +43,11 @@ #define UNIT_TEST_FAILED 1 #define UNIT_TEST_SKIPPED 2 +#define TEST_PRE 0 #define TEST_DEFAULT 1 #define TEST_DEL_WORLD INFINITY +// BEGIN_INCLUDE #include "apc_area_sanity.dm" #include "bespoke_id.dm" #include "binary_insert.dm" @@ -55,8 +57,10 @@ #include "create_and_destroy.dm" #include "dcs_get_id_from_elements.dm" #include "implanting.dm" +#include "item_variant_test.dm" #include "keybinding_init.dm" #include "map_templates.dm" +#include "mapping.dm" #include "spawn_guns.dm" #include "spawn_humans.dm" #include "spawn_xenos.dm" @@ -67,8 +71,8 @@ #include "weed_ability.dm" #include "weed_spread.dm" #include "xeno_logical_scaling.dm" -#include "item_variant_test.dm" #include "xenoaccuracy.dm" +// END_INCLUDE #ifdef REFERENCE_TRACKING //Don't try and parse this file if ref tracking isn't turned on. IE: don't parse ref tracking please mr linter #include "find_reference_sanity.dm" diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm index b8b9bc011f2ad..a3dc08624f623 100644 --- a/code/modules/unit_tests/create_and_destroy.dm +++ b/code/modules/unit_tests/create_and_destroy.dm @@ -22,6 +22,8 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE) /mob/living/carbon/xenomorph, ///Base type doesn't have any variations in it's variation list /turf/closed/wall/variable, + //This is meant to fail extremely loud every single time it occurs in any environment in any context, and it falsely alarms when this unit test iterates it. Let's not spawn it in. + /obj/merge_conflict_marker, ///Base type with no disk type /obj/machinery/computer/nuke_disk_generator, ) diff --git a/code/modules/unit_tests/mapping.dm b/code/modules/unit_tests/mapping.dm new file mode 100644 index 0000000000000..b1585a10b7f0e --- /dev/null +++ b/code/modules/unit_tests/mapping.dm @@ -0,0 +1,24 @@ +/// Conveys all log_mapping messages as unit test failures, as they all indicate mapping problems. +/datum/unit_test/log_mapping + // Happen before all other tests, to make sure we only capture normal mapping logs. + priority = TEST_PRE + +/datum/unit_test/log_mapping/Run() + // var/static/regex/test_areacoord_regex = regex(@"\(-?\d+,-?\d+,(-?\d+)\)") + + for(var/log_entry in GLOB.unit_test_mapping_logs) + // Only fail if AREACOORD was conveyed, and it's a ship or ground z-level. + // This is due to mapping errors don't have coords being impossible to diagnose as a unit test, + // and various other zlevels frequently intentionally do non-standard things. + + /* hey, this is disabled because we use log_mapping for errors only atm and + I cant be bothered to make the TG version of areacoord work with ours. + if you port it make sure to uncomment this + + if(!test_areacoord_regex.Find(log_entry)) + continue + var/z = text2num(test_areacoord_regex.group[1]) + if(!is_gameplay_level(z)) + continue + */ + Fail(log_entry) diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 65a1b1daabf98..cdd194112d7bf 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -102,6 +102,7 @@ GLOBAL_LIST_EMPTY(unit_test_mapping_logs) for(var/J in 1 to LAZYLEN(fail_reasons)) log_entry += "\tREASON #[J]: [fail_reasons[J]]" + //TODO missing tg's logging what map it failed on var/message = log_entry.Join("\n") log_test(message) diff --git a/code/modules/vehicles/_hitbox.dm b/code/modules/vehicles/_hitbox.dm index 7f0362d68c10e..35e26592fc9c9 100644 --- a/code/modules/vehicles/_hitbox.dm +++ b/code/modules/vehicles/_hitbox.dm @@ -110,8 +110,13 @@ forceMove(mover.loc) for(var/mob/living/tank_desant AS in tank_desants) step(tank_desant, direction, root.step_size) - if(isxeno(tank_desant) || move_dist > 1) //skips xenos, and - return + if(isxeno(tank_desant) || move_dist > 1) + continue + if(move_dist > 1) + continue + if(!tank_desant.l_hand || !tank_desant.r_hand) + continue + balloon_alert(tank_desant, "poor grip!") var/away_dir = get_dir(tank_desant, root) if(!away_dir) away_dir = pick(GLOB.alldirs) diff --git a/code/modules/vehicles/armored/__armored.dm b/code/modules/vehicles/armored/__armored.dm index 86dc61cc8f355..b63d74ef641d0 100644 --- a/code/modules/vehicles/armored/__armored.dm +++ b/code/modules/vehicles/armored/__armored.dm @@ -12,8 +12,6 @@ allow_pass_flags = PASS_TANK|PASS_AIR|PASS_WALKOVER resistance_flags = XENO_DAMAGEABLE|UNACIDABLE|PLASMACUTTER_IMMUNE|PORTAL_IMMUNE - // placeholder, make skill check or similar later - req_access = list(ACCESS_MARINE_MECH) move_delay = 0.7 SECONDS max_integrity = 600 light_range = 10 @@ -55,10 +53,10 @@ var/obj/item/tank_module/driver_utility_module ///Our driver utility module var/obj/item/tank_module/gunner_utility_module - //What kind of primary tank weaponry we start with. Defaults to a tank gun. - var/primary_weapon_type = /obj/item/armored_weapon - //What kind of secondary tank weaponry we start with. Default minigun as standard. - var/secondary_weapon_type = /obj/item/armored_weapon/secondary_weapon + ///list of weapons we allow to attach + var/list/permitted_weapons = list(/obj/item/armored_weapon, /obj/item/armored_weapon/ltaap, /obj/item/armored_weapon/secondary_weapon) + ///list of mods we allow to attach + var/list/permitted_mods = list(/obj/item/tank_module/overdrive, /obj/item/tank_module/passenger, /obj/item/tank_module/ability/zoom) ///Minimap flags to use for this vehcile var/minimap_flags = MINIMAP_FLAG_MARINE ///minimap iconstate to use for this vehicle @@ -105,13 +103,6 @@ if(MAP_ARMOR_STYLE_DESERT) turret_overlay.icon_state += "_desert" vis_contents += turret_overlay - if(primary_weapon_type) - var/obj/item/armored_weapon/primary = new primary_weapon_type(src) - primary.attach(src, TRUE) - if(armored_flags & ARMORED_HAS_SECONDARY_WEAPON) - if(secondary_weapon_type) - var/obj/item/armored_weapon/secondary = new secondary_weapon_type(src) - secondary.attach(src, FALSE) if(armored_flags & ARMORED_HAS_MAP_VARIANTS) switch(SSmapping.configs[GROUND_MAP].armor_style) if(MAP_ARMOR_STYLE_JUNGLE) @@ -127,13 +118,20 @@ GLOB.tank_list += src /obj/vehicle/sealed/armored/Destroy() - QDEL_NULL(primary_weapon) - QDEL_NULL(secondary_weapon) - QDEL_NULL(driver_utility_module) - QDEL_NULL(gunner_utility_module) - QDEL_NULL(damage_overlay) - QDEL_NULL(turret_overlay) - QDEL_NULL(interior) + if(primary_weapon) + QDEL_NULL(primary_weapon) + if(secondary_weapon) + QDEL_NULL(secondary_weapon) + if(driver_utility_module) + QDEL_NULL(driver_utility_module) + if(gunner_utility_module) + QDEL_NULL(gunner_utility_module) + if(damage_overlay) + QDEL_NULL(damage_overlay) + if(turret_overlay) + QDEL_NULL(turret_overlay) + if(isdatum(interior)) + QDEL_NULL(interior) underlay = null GLOB.tank_list -= src return ..() @@ -414,6 +412,9 @@ . = ..() if(istype(I, /obj/item/armored_weapon)) var/obj/item/armored_weapon/gun = I + if(!(gun.type in permitted_weapons)) + balloon_alert(user, "cannot attach") + return if(!(gun.weapon_slot & MODULE_PRIMARY)) balloon_alert(user, "not a primary weapon") return @@ -423,6 +424,9 @@ gun.attach(src, TRUE) return if(istype(I, /obj/item/tank_module)) + if(!(I.type in permitted_mods)) + balloon_alert(user, "cannot attach") + return var/obj/item/tank_module/mod = I mod.on_equip(src, user) return @@ -471,6 +475,9 @@ return if(istype(I, /obj/item/armored_weapon)) var/obj/item/armored_weapon/gun = I + if(!(gun.type in permitted_weapons)) + balloon_alert(user, "cannot attach") + return if(!(gun.weapon_slot & MODULE_SECONDARY)) balloon_alert(user, "not a secondary weapon") return diff --git a/code/modules/vehicles/armored/_multitile.dm b/code/modules/vehicles/armored/_multitile.dm index 94aa52943f67f..38077cbafd704 100644 --- a/code/modules/vehicles/armored/_multitile.dm +++ b/code/modules/vehicles/armored/_multitile.dm @@ -11,12 +11,13 @@ minimap_icon_state = "tank" required_entry_skill = SKILL_LARGE_VEHICLE_TRAINED atom_flags = DIRLOCK|BUMP_ATTACKABLE|PREVENT_CONTENTS_EXPLOSION - armored_flags = ARMORED_HAS_PRIMARY_WEAPON|ARMORED_HAS_SECONDARY_WEAPON|ARMORED_HAS_UNDERLAY|ARMORED_HAS_MAP_VARIANTS|ARMORED_HAS_HEADLIGHTS + armored_flags = ARMORED_HAS_PRIMARY_WEAPON|ARMORED_HAS_SECONDARY_WEAPON|ARMORED_HAS_UNDERLAY|ARMORED_HAS_MAP_VARIANTS|ARMORED_HAS_HEADLIGHTS|ARMORED_PURCHASABLE_ASSAULT pixel_x = -48 pixel_y = -48 max_integrity = 900 soft_armor = list(MELEE = 50, BULLET = 100 , LASER = 90, ENERGY = 60, BOMB = 60, BIO = 60, FIRE = 50, ACID = 50) hard_armor = list(MELEE = 0, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) + permitted_mods = list(/obj/item/tank_module/overdrive, /obj/item/tank_module/ability/zoom) max_occupants = 4 move_delay = 0.9 SECONDS ram_damage = 100 diff --git a/code/modules/vehicles/armored/apc.dm b/code/modules/vehicles/armored/apc.dm index 2400c6db6fd87..b1936dc20196d 100644 --- a/code/modules/vehicles/armored/apc.dm +++ b/code/modules/vehicles/armored/apc.dm @@ -4,14 +4,12 @@ icon = 'icons/obj/armored/3x3/apc.dmi' icon_state = "apc" damage_icon_path = 'icons/obj/armored/3x3/apc_damage_overlay.dmi' - armored_flags = ARMORED_HAS_HEADLIGHTS + armored_flags = ARMORED_HAS_HEADLIGHTS|ARMORED_PURCHASABLE_TRANSPORT required_entry_skill = SKILL_LARGE_VEHICLE_DEFAULT minimap_icon_state = null turret_icon = null interior = null secondary_turret_icon = null - primary_weapon_type = null - secondary_weapon_type = null armored_flags = NONE pixel_x = -48 pixel_y = -40 diff --git a/code/modules/vehicles/armored/armored_weapons.dm b/code/modules/vehicles/armored/armored_weapons.dm index f64f3886855d0..264790957f484 100644 --- a/code/modules/vehicles/armored/armored_weapons.dm +++ b/code/modules/vehicles/armored/armored_weapons.dm @@ -58,7 +58,8 @@ /obj/item/armored_weapon/Destroy() if(chassis) detach(get_turf(chassis)) - QDEL_NULL(ammo) + if(isdatum(ammo)) + QDEL_NULL(ammo) QDEL_LIST(ammo_magazine) return ..() @@ -321,7 +322,7 @@ ammo = /obj/item/ammo_magazine/tank/ltaap_chaingun accepted_ammo = list(/obj/item/ammo_magazine/tank/ltaap_chaingun) fire_mode = GUN_FIREMODE_AUTOMATIC - variance = 15 + variance = 5 projectile_delay = 0.1 SECONDS rearm_time = 3 SECONDS maximum_magazines = 5 diff --git a/code/modules/vehicles/armored/interiors/ammo_rack.dm b/code/modules/vehicles/armored/interiors/ammo_rack.dm index 2a00fd06db84a..8e4f3afcab6e0 100644 --- a/code/modules/vehicles/armored/interiors/ammo_rack.dm +++ b/code/modules/vehicles/armored/interiors/ammo_rack.dm @@ -1,53 +1,39 @@ - -/obj/structure/ammo_rack +/*! + * Contains ammo racks for tank ammo storage + */ +/obj/structure/ammo_rack //Parent type, only used as a template icon = 'icons/obj/armored/3x3/tank_interior.dmi' - ///ref to the actual internal storage - var/obj/item/storage/internal/storage = /obj/item/storage/internal + ///Determines what subtype of storage is on our item, see datums\storage\subtypes + var/storage_type = /datum/storage/tank /obj/structure/ammo_rack/Initialize(mapload) . = ..() - storage = new storage(src) + create_storage(storage_type) + PopulateContents() update_appearance(UPDATE_OVERLAYS) +///Use this to fill your storage with items. USE THIS INSTEAD OF NEW/INIT +/obj/structure/ammo_rack/proc/PopulateContents() + return + /obj/structure/ammo_rack/examine(mob/user) . = ..() . += "Right click to remove the topmost object." -/obj/structure/ammo_rack/attack_hand(mob/living/user) - return storage.open(user) - -/obj/structure/ammo_rack/MouseDrop(obj/over_object) - if(storage.handle_mousedrop(usr, over_object)) - return ..() - -/obj/structure/ammo_rack/attackby(obj/item/I, mob/user, params) - ..() - return storage.attackby(I, user, params) - -/obj/structure/ammo_rack/attack_hand_alternate(mob/user) - ..() - return storage.attack_hand_alternate(user) - /obj/structure/ammo_rack/update_overlays() . = ..() - if(length(storage.contents)) - var/atom/bottommost = storage.contents[1] + if(length(contents)) + var/atom/bottommost = contents[1] var/total_w = 0 - for(var/obj/item/I AS in storage) + for(var/obj/item/I AS in contents) total_w += I.w_class - var/thirds = clamp(round(3 * (total_w / storage.max_storage_space)), 1, 3) + var/thirds = clamp(round(3 * (total_w / storage_datum.max_storage_space)), 1, 3) . += image(icon, src, bottommost.icon_state + "_" + "[thirds]") // "ltb_3"/"ltb_2"/"ltb_1" -/obj/structure/ammo_rack/on_pocket_insertion() - update_appearance() - -/obj/structure/ammo_rack/on_pocket_removal() - update_appearance() - /obj/structure/ammo_rack/primary name = "primary ammo rack" icon_state = "primaryrack" - storage = /obj/item/storage/internal/ammorack_primary + storage_type = /datum/storage/tank/ammorack_primary /obj/structure/ammo_rack/primary/update_overlays() . = ..() @@ -56,21 +42,4 @@ /obj/structure/ammo_rack/secondary name = "secondary ammo rack" icon_state = "secondaryrack" - storage = /obj/item/storage/internal/ammorack_secondary - -/obj/item/storage/internal/ammorack_primary - max_storage_space = 120 //they're all WEIGHT_CLASS_GIGANTIC which is 6 - storage_slots = 20 - max_w_class = WEIGHT_CLASS_GIGANTIC - can_hold = list( - /obj/item/ammo_magazine/tank/ltb_cannon, - /obj/item/ammo_magazine/tank/ltaap_chaingun, - ) - -/obj/item/storage/internal/ammorack_secondary - max_storage_space = 120 - storage_slots = 20 - max_w_class = WEIGHT_CLASS_GIGANTIC - can_hold = list( - /obj/item/ammo_magazine/tank/secondary_cupola, - ) + storage_type = /datum/storage/tank/ammorack_secondary diff --git a/code/modules/vehicles/armored/medium_apc.dm b/code/modules/vehicles/armored/medium_apc.dm index ec0996a2b5279..ca15eb9e78eae 100644 --- a/code/modules/vehicles/armored/medium_apc.dm +++ b/code/modules/vehicles/armored/medium_apc.dm @@ -12,5 +12,3 @@ icon_state = "apc" move_delay = 0.25 SECONDS max_occupants = 5 - primary_weapon_type = /obj/item/armored_weapon/apc_cannon //Only has a utility launcher, no offense as standard. - secondary_weapon_type = null diff --git a/code/modules/vehicles/armored/small_apc.dm b/code/modules/vehicles/armored/small_apc.dm index 27c8c1bc17756..2f7f57188ece9 100644 --- a/code/modules/vehicles/armored/small_apc.dm +++ b/code/modules/vehicles/armored/small_apc.dm @@ -11,5 +11,3 @@ pixel_x = -16 pixel_y = -8 max_occupants = 3 - primary_weapon_type = null - secondary_weapon_type = null diff --git a/code/modules/vehicles/armored/tank_fabricator.dm b/code/modules/vehicles/armored/tank_fabricator.dm index d15bec0c721a7..6db634f4bff9f 100644 --- a/code/modules/vehicles/armored/tank_fabricator.dm +++ b/code/modules/vehicles/armored/tank_fabricator.dm @@ -4,6 +4,23 @@ density = TRUE anchored = TRUE use_power = IDLE_POWER_USE + req_access = list(ACCESS_MARINE_ARMORED) idle_power_usage = 20 + bound_width = 64 icon = 'icons/obj/machines/drone_fab.dmi' icon_state = "drone_fab_idle" + /// actual UI that will be interacted with + var/datum/supply_ui/vehicles/supply_ui + +/obj/machinery/tank_part_fabricator/interact(mob/user) + . = ..() + if(.) + return + if(!allowed(user)) + return + if(!supply_ui) + supply_ui = new(src) + supply_ui.shuttle_id = SHUTTLE_VEHICLE_SUPPLY + supply_ui.home_id = "vehicle_home" + supply_ui.faction = FACTION_TERRAGOV + return supply_ui.interact(user) diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm index b13364e656dcc..45a8972e3ee4d 100644 --- a/code/modules/vehicles/mecha/mecha_defense.dm +++ b/code/modules/vehicles/mecha/mecha_defense.dm @@ -105,6 +105,7 @@ living_occupant.Stagger(stagger_duration) /obj/vehicle/sealed/mecha/contents_explosion(severity) + . = ..() severity-- switch(severity) @@ -130,6 +131,7 @@ SSexplosions.weakMovAtom += trackers /obj/vehicle/sealed/mecha/handle_atom_del(atom/A) + . = ..() if(A in occupants) //todo does not work and in wrong file LAZYREMOVE(occupants, A) icon_state = initial(icon_state)+"-open" @@ -148,7 +150,7 @@ equipment_disabled = TRUE set_mouse_pointer() -/obj/vehicle/sealed/mecha/fire_act() //Check if we should ignite the pilot of an open-canopy mech +/obj/vehicle/sealed/mecha/fire_act(burn_level) //Check if we should ignite the pilot of an open-canopy mech . = ..() if(enclosed || mecha_flags & SILICON_PILOT) return diff --git a/code/modules/vehicles/motorbike.dm b/code/modules/vehicles/motorbike.dm index 614312a406afe..9ea6aacb52348 100644 --- a/code/modules/vehicles/motorbike.dm +++ b/code/modules/vehicles/motorbike.dm @@ -14,9 +14,7 @@ allow_pass_flags = PASSABLE coverage = 30 //It's just a bike, not hard to shoot over buckle_flags = CAN_BUCKLE|BUCKLE_PREVENTS_PULL|BUCKLE_NEEDS_HAND - ///Internal motorbick storage object - var/obj/item/storage/internal/motorbike_pack/motor_pack = /obj/item/storage/internal/motorbike_pack - ///Mutable appearance overlay that covers up the mob with th e bike as needed + ///Mutable appearance overlay that covers up the mob with the bike as needed var/mutable_appearance/motorbike_cover ///Fuel count, fuel usage is one per tile moved var/fuel_count = 0 @@ -29,7 +27,7 @@ /obj/vehicle/ridden/motorbike/Initialize(mapload) . = ..() AddElement(/datum/element/ridable, /datum/component/riding/vehicle/motorbike) - motor_pack = new motor_pack(src) + create_storage(/datum/storage/internal/motorbike_pack) motorbike_cover = mutable_appearance(icon, "motorbike_cover", MOB_LAYER + 0.1) fuel_count = fuel_max @@ -60,13 +58,6 @@ return FALSE return ..() -/obj/vehicle/ridden/motorbike/attack_hand(mob/living/user) - return motor_pack.open(user) - -/obj/vehicle/ridden/motorbike/MouseDrop(obj/over_object) - if(motor_pack.handle_mousedrop(usr, over_object)) - return ..() - /obj/vehicle/ridden/motorbike/Moved(atom/old_loc, movement_dir, forced, list/old_locs) . = ..() if(!LAZYLEN(buckled_mobs)) // dont use fuel or make noise unless we're being used @@ -81,9 +72,6 @@ playsound(get_turf(src), 'sound/vehicles/carrev.ogg', 100, TRUE) /obj/vehicle/ridden/motorbike/attackby(obj/item/I, mob/user, params) - . = ..() - if(.) - return if(istype(I, /obj/item/reagent_containers/jerrycan)) var/obj/item/reagent_containers/jerrycan/gascan = I if(gascan.reagents.total_volume == 0) @@ -124,8 +112,7 @@ max_buckled_mobs = 2 max_occupants = 2 return TRUE - if(user.a_intent != INTENT_HARM) - return motor_pack.attackby(I, user, params) + return ..() /obj/vehicle/ridden/motorbike/proc/sidecar_dir_change(datum/source, dir, newdir) SIGNAL_HANDLER @@ -186,24 +173,6 @@ STOP_PROCESSING(SSobj,src) return ..() -/obj/item/storage/internal/motorbike_pack - storage_slots = 4 - max_w_class = WEIGHT_CLASS_SMALL - max_storage_space = 8 - - -/obj/item/storage/internal/motorbike_pack/handle_mousedrop(mob/user, obj/over_object) - if(!ishuman(user)) - return FALSE - - if(user.lying_angle || user.incapacitated()) //Can't use your inventory when lying - return FALSE - - if(over_object == user && Adjacent(user)) //This must come before the screen objects only block - open(user) - return FALSE - - /** * Sidecar that when attached lets you put two people on the bike */ diff --git a/code/modules/vehicles/unmanned/unmanned_vehicle.dm b/code/modules/vehicles/unmanned/unmanned_vehicle.dm index 27986490bfcd5..e12d77bdcb444 100644 --- a/code/modules/vehicles/unmanned/unmanned_vehicle.dm +++ b/code/modules/vehicles/unmanned/unmanned_vehicle.dm @@ -284,11 +284,8 @@ /obj/vehicle/unmanned/proc/delete_muzzle_flash() vis_contents -= flash -/obj/vehicle/unmanned/flamer_fire_act(burnlevel) - take_damage(burnlevel / 2, BURN, FIRE) - -/obj/vehicle/unmanned/fire_act() - take_damage(20, BURN, FIRE) +/obj/vehicle/unmanned/fire_act(burn_level) + take_damage(burn_level / 2, BURN, FIRE) /obj/vehicle/unmanned/welder_act(mob/living/user, obj/item/I) return welder_repair_act(user, I, 35, 2 SECONDS, 0, SKILL_ENGINEER_ENGI, 1, 4 SECONDS) diff --git a/code/modules/xenomorph/_xeno_structure.dm b/code/modules/xenomorph/_xeno_structure.dm index 71a6521e981a7..3b400718a86ad 100644 --- a/code/modules/xenomorph/_xeno_structure.dm +++ b/code/modules/xenomorph/_xeno_structure.dm @@ -41,11 +41,8 @@ balloon_alert(user, "You only scrape at it") return TRUE -/obj/structure/xeno/flamer_fire_act(burnlevel) - take_damage(burnlevel / 3, BURN, FIRE) - -/obj/structure/xeno/fire_act() - take_damage(10, BURN, FIRE) +/obj/structure/xeno/fire_act(burn_level) + take_damage(burn_level / 3, BURN, FIRE) /// Destroy the xeno structure when the weed it was on is destroyed /obj/structure/xeno/proc/weed_removed() diff --git a/code/modules/xenomorph/acidwell.dm b/code/modules/xenomorph/acidwell.dm index 628f7e687bb57..361f61ab57ee3 100644 --- a/code/modules/xenomorph/acidwell.dm +++ b/code/modules/xenomorph/acidwell.dm @@ -77,10 +77,7 @@ . += mutable_appearance(icon, "[charges]", alpha = src.alpha) . += emissive_appearance(icon, "[charges]", alpha = src.alpha) -/obj/structure/xeno/acidwell/flamer_fire_act(burnlevel) //Removes a charge of acid, but fire is extinguished - acid_well_fire_interaction() - -/obj/structure/xeno/acidwell/fire_act() //Removes a charge of acid, but fire is extinguished +/obj/structure/xeno/acidwell/fire_act(burn_level) acid_well_fire_interaction() ///Handles fire based interactions with the acid well. Depletes 1 charge if there are any to extinguish all fires in the turf while producing acid smoke. diff --git a/code/modules/xenomorph/trap.dm b/code/modules/xenomorph/trap.dm index c774c78ecf92d..3918b028f63b6 100644 --- a/code/modules/xenomorph/trap.dm +++ b/code/modules/xenomorph/trap.dm @@ -92,12 +92,7 @@ else . += "It's empty." -/obj/structure/xeno/trap/flamer_fire_act(burnlevel) - hugger?.kill_hugger() - trigger_trap() - set_trap_type(null) - -/obj/structure/xeno/trap/fire_act() +/obj/structure/xeno/trap/fire_act(burn_level) hugger?.kill_hugger() trigger_trap() set_trap_type(null) diff --git a/code/modules/xenomorph/xeno_turret.dm b/code/modules/xenomorph/xeno_turret.dm index cfa12a4c6be7c..d5e1d2e9f8572 100644 --- a/code/modules/xenomorph/xeno_turret.dm +++ b/code/modules/xenomorph/xeno_turret.dm @@ -80,12 +80,8 @@ if(EXPLODE_LIGHT) take_damage(300, BRUTE, BOMB) -/obj/structure/xeno/xeno_turret/flamer_fire_act(burnlevel) - take_damage(burnlevel * 2, BURN, FIRE) - ENABLE_BITFIELD(resistance_flags, ON_FIRE) - -/obj/structure/xeno/xeno_turret/fire_act() - take_damage(60, BURN, FIRE) +/obj/structure/xeno/xeno_turret/fire_act(burn_level) + take_damage(burn_level * 2, BURN, FIRE) ENABLE_BITFIELD(resistance_flags, ON_FIRE) /obj/structure/xeno/xeno_turret/update_overlays() diff --git a/dependencies.sh b/dependencies.sh index 88464050d2a5a..5341904cab7e9 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -5,14 +5,14 @@ # byond version export BYOND_MAJOR=515 -export BYOND_MINOR=1626 +export BYOND_MINOR=1633 #rust_g git tag export RUST_G_VERSION=3.1.0 #node version -export NODE_VERSION=14 -export NODE_VERSION_PRECISE=14.16.1 +export NODE_VERSION=20 +export NODE_VERSION_LTS=20.12.0 # SpacemanDMM git tag export SPACEMAN_DMM_VERSION=suite-1.8 diff --git a/html/changelogs/AutoChangeLog-pr-15624.yml b/html/changelogs/AutoChangeLog-pr-15624.yml new file mode 100644 index 0000000000000..2818636ba30d9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15624.yml @@ -0,0 +1,4 @@ +author: "Lumipharon" +delete-after: True +changes: + - code_imp: "Combined duplicate types of fire_act" \ No newline at end of file diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml index ab54217621b82..2c16ef2c6b4fb 100644 --- a/html/changelogs/archive/2024-04.yml +++ b/html/changelogs/archive/2024-04.yml @@ -107,6 +107,8 @@ yyzsong: - rscadd: Adds night vision goggles to valhalla 2024-04-07: + Naaanii: + - bugfix: fixes grenade box storage amount for some of the boxes. TiviPlus: - rscadd: AI can use evasion - rscadd: Nymphs and non-minion AI will no longer be suicidal @@ -114,3 +116,159 @@ - balance: Gelida caves can now be plasmacut one tile deep. lbnesquik: - rscadd: Added extra clone bays to TGS Theseus +2024-04-08: + Lumipharon: + - bugfix: 'Campaign: SOM SL actually gets an axe with the axe perk' + - balance: 'Campaign: Various minor loadout additions and tweaks' + - bugfix: Larva gen no longer counts minions when calculating xeno pop + PestoVerde322: + - bugfix: The M30 box magazine and the generic rocket launcher rocket have now a + proper path + - bugfix: Altought impossible to spot in normal game conditions, the 67mm internal + tube rocket is now rightfully 68mm + PibeCantina: + - balance: 'Lowers king pheros strength to 4.5 + + :cl:' + TiviPlus: + - bugfix: Pamphlets now have the ability to prevent being stacked + - balance: LTA-AP spread decreased + - rscadd: Tank has been enabled + - rscadd: Added tank vendor + coldironwarrior: + - qol: cleaned up the synth vendor + novaepee: + - bugfix: update smartgunner's job description to present sg better in 2024 +2024-04-09: + Lumipharon: + - imageadd: Improved some colour and detail in campaign portraits + - bugfix: fixed being able to dig dirt out of turfs such as solid concrete + - balance: 'Campaign: Adjusted the Raiding Base map slightly' + Naaanii: + - balance: Already infinite pill bottles and chem bottles in marine medivend are + now also infinite in med vendors. + - balance: Scanners are now infinite in med vendors. + - balance: Increases the sunder of AMR flak rounds. + TiviPlus: + - rscadd: Gives assault crewmen loader pamphlets + TiviPlus, Barnet: + - bugfix: Fixed an issue with improper naming leading to issues with special walls + keybinds. This may result in slight changes to this keybind as it fixes itself + - bugfix: Fixed the stock uptick event never firing + - bugfix: Codex entries for factions were not compiled, they now are in the game + correctly + - bugfix: Fixed Zombie Crash not being compiled + - bugfix: fixed the dev version of tts not working + - code_imp: Improved automated detection of issues and fixed a number of them + - code_imp: removed unused files + - code_imp: the codebase now ships with UpdatePath and midi2piano + blackdav123: + - bugfix: Removed locker floating in space around the Theseus + coldironwarrior: + - balance: AT-36 reqtorio supply packs now have 200 points + - bugfix: fixed the AT HE shell pack in req including 2 HE and 1 standard shell + instead of 3 HE + lbnesquik: + - rscadd: Ported floor lights from polaris + - bugfix: ' Tank is no longer stuck in Daedalus LZ' + - rscadd: Added glass to each ship CIC and engineering rooms + - rscadd: Added more materials to the debugabus engineering room +2024-04-10: + Lumipharon: + - balance: Gun skills no longer effect fire delay for semi auto firing + - balance: Gun skills effect reload delay for magazines that have one + - qol: 'Campaign: Added some extra context around attrition and mission selection + for faction leaders' + - qol: 'Campaign: Deploy points have their corrosponding number on the sprite' + - balance: 'Campaign: Moved the SOM deploy points on NT Base Rescue a bit further + south' + - balance: 'Campaign: Both factions no longer get a free use of droppod refresh/teleporter + charges assets round start' + - balance: 'Campaign: Buffed the uses from teleporter activation, teleporter charges + and the default charges on the teleporter' + - bugfix: 'Campaign: Fixed the incorrect mortar disabler being applied to TGMC on + NT Base Rescue' + - rscadd: 'Campaign: Deploy and outro messages are now specific to each mission' + - code_imp: reworked how hvh deploy points work + - bugfix: You can no longer bypass innate order checks by using a keybind + coldironwarrior: + - balance: CMOs now heal an additional 7.5 damage per use of sutures + - code_imp: suture healing now scales with a divisor based off max med skill of + 5 instead of 4, and base_healing is upped to 37.5 to accommodate skill 5 having + better healing. no changes to other skill levels. + lbnesquik: + - qol: made reqtorio machines direction indicators much easier to read + - bugfix: fixed AI's not being able to use the overwatch camera jump + - code_imp: Removed useless comment in the AI hologram code + - admin: Made the Reload Admins button default to No + - qol: Made it possible to read the amount of fuel in jerry cans + novaepee: + - rscadd: Mjolnir, a new armor +2024-04-11: + Barnet2: + - bugfix: Fixes surgery blood loss occuring when bleeders are clamped + - bugfix: Fixes being able to clamp bleeders infinitely + Dikozda: + - rscdel: Removes puppeteer scout order and order radial menu. + - qol: Puppeteer attack and recall orders are now normal abilitys and have keybinds. + Lumipharon: + - bugfix: fixed a few campaign runtimes + - rscadd: 'Campaign: Added a SOM raiding base mission' + - qol: 'Campaign: Made some alterations to the home base maps' + - balance: Swapping with an illusion via mirage now breaks stealth + - bugfix: Mirage no longer lets you teleport across z-levels + - bugfix: fixed throwing rock pillars now applying the cooldown in many cases + Naaanii: + - rscadd: Captain now spawns with Captain's cloak and Captain's Beret. + - rscadd: Adds Captain's cloak red to Captain's locker. + - rscdel: Removes Captain's cloak from locker (Captain spawns with it now). + TiviPlus: + - rscadd: Tank riders can now hold on as long as at least one hand is free + lbnesquik: + - qol: Made it clearer that the scans on medHud humans inspections refers to body + scans, not handheld scanners. + - spellcheck: fixed missing capitalization regarding 2 tips + - spellcheck: removed superfluous dot at the end of Gas Mask preference + - code_imp: Go back to the line for some code. + - qol: Increased the AI holopad notification noise + - qol: The hand labeler now goes in and out to signify if it is open or not. + - bugfix: Fixed the AI carp holopad choice being called holo4 + - bugfix: Fix the autopsy scanner not having an icon. I took the one from old polaris, + or old bay. + - bugfix: Fixed Asphalt being called aasphalt + - code_imp: Renamed the OB laser typepath to not have capitals +2024-04-12: + BraveMole: + - qol: Clicking on an opened storage will close it + - qol: Clicking on a storage with an item that cannot be inserted in said storage + will open it + Lumipharon: + - bugfix: fixed a couple minor bugs with light fittings + - code_imp: Cleaned up some light fitting code + - bugfix: You can once again light cigarettes using broken lights, burning turfs, + or burning mobs + Neocloudy: + - qol: Orbital bombardments now play screentext to humans that includes the type + of the OB + - qol: Send Orders will now include the sender's faction acronym and job + - spellcheck: The content of the orbital bombardment announcement is now "Evacuate + the impact zone immediately!" instead of "Get out of danger close!" + - code_imp: '"faction_to_acronym" global list for getting faction acronyms' +2024-04-13: + Arturlang: + - balance: Ups wraith damage from 20 to 24 + Lumipharon: + - balance: 'Campaign: Improved constitution perk unlocks Tyr/Lorica for all jobs' + - bugfix: fixed bemo rock count being updated incorrectly + - bugfix: fixed xeno turrets causing FF + Xander3359: + - refactor: Storage refactor + Yttriums: + - balance: Increased RG220 wield delay from 1.2 to 2.0 seconds + blackdav123: + - balance: Reduced lascarbine spread mode's effectiveness at range. + jonash07: + - balance: Made synthetics scannable +2024-04-14: + AzonStarfall: + - qol: Adjustments to Arachne Medbay, CAS Bay, Vehicle Bay, and Marine Prep layouts. diff --git a/icons/Marine/marine-navigation.dmi b/icons/Marine/marine-navigation.dmi index 5f64a82492254..92c0b684f4074 100644 Binary files a/icons/Marine/marine-navigation.dmi and b/icons/Marine/marine-navigation.dmi differ diff --git a/icons/UI_Icons/screen_alert_images.dmi b/icons/UI_Icons/screen_alert_images.dmi index d93ab892d83c8..86468982a3cc7 100644 Binary files a/icons/UI_Icons/screen_alert_images.dmi and b/icons/UI_Icons/screen_alert_images.dmi differ diff --git a/icons/effects/campaign_effects.dmi b/icons/effects/campaign_effects.dmi new file mode 100644 index 0000000000000..33252bcd56e50 Binary files /dev/null and b/icons/effects/campaign_effects.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index cce2a0a4c3e6c..585a03598102b 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi index 4270cd20133ab..98bae3d2ac73d 100644 Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ diff --git a/icons/mob/inhands/weapons/grenades_left.dmi b/icons/mob/inhands/weapons/grenades_left.dmi index 9829b2acfdf3f..e5df0d6fdb6e5 100644 Binary files a/icons/mob/inhands/weapons/grenades_left.dmi and b/icons/mob/inhands/weapons/grenades_left.dmi differ diff --git a/icons/mob/inhands/weapons/grenades_right.dmi b/icons/mob/inhands/weapons/grenades_right.dmi index 73c5aac4ca89d..0350bad10a56d 100644 Binary files a/icons/mob/inhands/weapons/grenades_right.dmi and b/icons/mob/inhands/weapons/grenades_right.dmi differ diff --git a/icons/mob/modular/mark_one/mjolnir.dmi b/icons/mob/modular/mark_one/mjolnir.dmi new file mode 100644 index 0000000000000..31bf4f588d6b8 Binary files /dev/null and b/icons/mob/modular/mark_one/mjolnir.dmi differ diff --git a/icons/mob/modular/mark_two/mjolnir_open.dmi b/icons/mob/modular/mark_two/mjolnir_open.dmi new file mode 100644 index 0000000000000..ce9bf4ca634ad Binary files /dev/null and b/icons/mob/modular/mark_two/mjolnir_open.dmi differ diff --git a/icons/mob/modular/visors.dmi b/icons/mob/modular/visors.dmi index 76ca240af4a9c..400dc314b1d78 100644 Binary files a/icons/mob/modular/visors.dmi and b/icons/mob/modular/visors.dmi differ diff --git a/icons/obj/factory/factory_machines.dmi b/icons/obj/factory/factory_machines.dmi index 4100633df5f2e..f9b41e46a647e 100644 Binary files a/icons/obj/factory/factory_machines.dmi and b/icons/obj/factory/factory_machines.dmi differ diff --git a/icons/obj/items/grenade.dmi b/icons/obj/items/grenade.dmi index 7219a82679dd5..67cb5ff0b9d9a 100644 Binary files a/icons/obj/items/grenade.dmi and b/icons/obj/items/grenade.dmi differ diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi index afdd124960c8a..19d1e55830cd4 100644 Binary files a/icons/obj/items/paper.dmi and b/icons/obj/items/paper.dmi differ diff --git a/icons/obj/items/surgery_tools.dmi b/icons/obj/items/surgery_tools.dmi index ed66a84eb4b52..9100ab8de4cab 100644 Binary files a/icons/obj/items/surgery_tools.dmi and b/icons/obj/items/surgery_tools.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index e7e23f0f8b2e5..d4ff710e2caec 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/strings/tips/xeno.txt b/strings/tips/xeno.txt index 760ae54adde94..5b799256ccb1e 100644 --- a/strings/tips/xeno.txt +++ b/strings/tips/xeno.txt @@ -58,8 +58,8 @@ As a warlock, your offensive abilities can be cast through glass. Give laser-usi As a boiler, primordial hivelord, the King or the Queen, you have the most powerful corrosive acid for melting things. As the Shrike, take advantage of your psychic abilities. Use Psychic Fling and Unrelenting Force to displace a marine or even push certain and hazardous objects towards your enemies and vice versa. As the Queen, your screech does not only affect the mobs on view, but affects through walls or gases. However, the effect of the screech will be reduced. -As a drone, hivelord, Hivemind, Shrike, and the Queen, a large maze is almost always a good investment. -As a drone, hivelord, Hivemind, Shrike, and the Queen, be clever with your walling. Try to allow for as much fluid movement as possible. +As a drone, Hivelord, Hivemind, Shrike, and the Queen, a large maze is almost always a good investment. +As a drone, Hivelord, Hivemind, Shrike, and the Queen, be clever with your walling. Try to allow for as much fluid movement as possible. As a shrike, queen, or king, hijacking the alamo will kill every xeno that you leave groundside, as well as destroying every structure and resetting your psy count. However, dead xenos will be refunded as burrowed larva. Call burrowed after a hijack! Sticky resin can act as the path for your maze to be built around. The Hivemind is very skilled at flanking marines. Wait for them to push, and wall them off from behind! diff --git a/tgmc.dme b/tgmc.dme index 8e45a543ea3e7..b50d7a7d6a592 100644 --- a/tgmc.dme +++ b/tgmc.dme @@ -10,6 +10,7 @@ #define DEBUG // END_PREFERENCES // BEGIN_INCLUDE +#include "__odlint.dm" #include "_maps\_basemap.dm" #include "code\__byond_version_compat.dm" #include "code\_compile_options.dm" @@ -267,6 +268,7 @@ #include "code\controllers\subsystem.dm" #include "code\controllers\configuration\config_entry.dm" #include "code\controllers\configuration\configuration.dm" +#include "code\controllers\configuration\entries\comms.dm" #include "code\controllers\configuration\entries\dbconfig.dm" #include "code\controllers\configuration\entries\game_options.dm" #include "code\controllers\configuration\entries\general.dm" @@ -497,6 +499,7 @@ #include "code\datums\gamemodes\objective.dm" #include "code\datums\gamemodes\objective_items.dm" #include "code\datums\gamemodes\sensor_capture.dm" +#include "code\datums\gamemodes\zombie_crash.dm" #include "code\datums\gamemodes\campaign\campaign_assets.dm" #include "code\datums\gamemodes\campaign\campaign_mission.dm" #include "code\datums\gamemodes\campaign\faction_stats.dm" @@ -634,6 +637,22 @@ #include "code\datums\status_effects\speech_debuffs.dm" #include "code\datums\status_effects\status_effect.dm" #include "code\datums\status_effects\xeno_buffs.dm" +#include "code\datums\storage\storage.dm" +#include "code\datums\storage\subtypes\backpack.dm" +#include "code\datums\storage\subtypes\bag.dm" +#include "code\datums\storage\subtypes\belt.dm" +#include "code\datums\storage\subtypes\bible.dm" +#include "code\datums\storage\subtypes\box.dm" +#include "code\datums\storage\subtypes\briefcase.dm" +#include "code\datums\storage\subtypes\holster.dm" +#include "code\datums\storage\subtypes\internal.dm" +#include "code\datums\storage\subtypes\lockbox.dm" +#include "code\datums\storage\subtypes\pill_bottle.dm" +#include "code\datums\storage\subtypes\pouch.dm" +#include "code\datums\storage\subtypes\reagent_tank.dm" +#include "code\datums\storage\subtypes\surgical_tray.dm" +#include "code\datums\storage\subtypes\tank.dm" +#include "code\datums\storage\subtypes\wallet.dm" #include "code\datums\weather\weather.dm" #include "code\datums\weather\weather_types\acid_rain.dm" #include "code\datums\weather\weather_types\ash_storm.dm" @@ -686,6 +705,7 @@ #include "code\game\area\campaign_maps\jungle_outpost.dm" #include "code\game\area\campaign_maps\som_base.dm" #include "code\game\area\campaign_maps\som_raiding_base.dm" +#include "code\game\area\campaign_maps\tgmc_raiding_base.dm" #include "code\game\atoms\_atom.dm" #include "code\game\atoms\atom_appearance.dm" #include "code\game\atoms\atom_movable.dm" @@ -750,6 +770,7 @@ #include "code\game\objects\effects\landmarks\mode.dm" #include "code\game\objects\effects\landmarks\gamemode\campaign_reward_spawns.dm" #include "code\game\objects\effects\landmarks\gamemode\crash_spawns.dm" +#include "code\game\objects\effects\landmarks\gamemode\hvh_deploy_points.dm" #include "code\game\objects\effects\spawners\bombspawner.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\modularmappingspawner.dm" @@ -925,7 +946,6 @@ #include "code\game\objects\items\storage\fancy.dm" #include "code\game\objects\items\storage\firstaid.dm" #include "code\game\objects\items\storage\holsters.dm" -#include "code\game\objects\items\storage\internal.dm" #include "code\game\objects\items\storage\lockbox.dm" #include "code\game\objects\items\storage\marine_boxes.dm" #include "code\game\objects\items\storage\misc.dm" @@ -1468,6 +1488,7 @@ #include "code\modules\codex\entries\atmospherics_codex.dm" #include "code\modules\codex\entries\clothing_codex.dm" #include "code\modules\codex\entries\engineering_codex.dm" +#include "code\modules\codex\entries\faction_codex.dm" #include "code\modules\codex\entries\guns_codex.dm" #include "code\modules\codex\entries\machinery_codex.dm" #include "code\modules\codex\entries\magazine_codex.dm" @@ -1499,6 +1520,7 @@ #include "code\modules\events\hive_threat.dm" #include "code\modules\events\intel_computer.dm" #include "code\modules\events\ion_storm.dm" +#include "code\modules\events\stock_uptick.dm" #include "code\modules\events\supply_drop.dm" #include "code\modules\factory\howtopaper.dm" #include "code\modules\factory\machines.dm" @@ -1583,6 +1605,7 @@ #include "code\modules\logging\categories\log_category_misc.dm" #include "code\modules\mapping\map_template.dm" #include "code\modules\mapping\mapping_helpers.dm" +#include "code\modules\mapping\merge_conflicts.dm" #include "code\modules\mapping\modular_mapping.dm" #include "code\modules\mapping\preloader.dm" #include "code\modules\mapping\reader.dm" @@ -1893,7 +1916,9 @@ #include "code\modules\power\generator_type2.dm" #include "code\modules\power\gravitygenerator.dm" #include "code\modules\power\groundmap_geothermal.dm" +#include "code\modules\power\light_bulbs.dm" #include "code\modules\power\lighting.dm" +#include "code\modules\power\lighting_frame.dm" #include "code\modules\power\multiz.dm" #include "code\modules\power\pipecleaners.dm" #include "code\modules\power\port_gen.dm" @@ -2020,15 +2045,18 @@ #include "code\modules\tgui\states\deep_inventory.dm" #include "code\modules\tgui\states\default.dm" #include "code\modules\tgui\states\dropship.dm" +#include "code\modules\tgui\states\fun.dm" #include "code\modules\tgui\states\hands.dm" #include "code\modules\tgui\states\human_adjacent.dm" #include "code\modules\tgui\states\inventory.dm" #include "code\modules\tgui\states\language_menu.dm" +#include "code\modules\tgui\states\never.dm" #include "code\modules\tgui\states\new_player.dm" #include "code\modules\tgui\states\not_incapacitated.dm" #include "code\modules\tgui\states\notcontained.dm" #include "code\modules\tgui\states\observer.dm" #include "code\modules\tgui\states\physical.dm" +#include "code\modules\tgui\states\reverse_contained.dm" #include "code\modules\tgui\states\self.dm" #include "code\modules\tgui\states\xeno.dm" #include "code\modules\tgui\states\zlevel.dm" diff --git a/tgui/packages/tgui/interfaces/VehicleSupply.tsx b/tgui/packages/tgui/interfaces/VehicleSupply.tsx new file mode 100644 index 0000000000000..3268f330f0494 --- /dev/null +++ b/tgui/packages/tgui/interfaces/VehicleSupply.tsx @@ -0,0 +1,215 @@ +import { useBackend } from '../backend'; +import { Button, Collapsible, Section, Slider, Stack } from '../components'; +import { Window } from '../layouts'; + +type SelectionEntry = { + name: string; + desc: string; + type: string; + isselected: boolean; +}; + +type AmmoData = { + name: string; + type: string; + current: number; + max: number; +}; + +type VehicleSupplyData = { + vehicles: SelectionEntry[]; + primaryWeapons: SelectionEntry[]; + secondaryWeapons: SelectionEntry[]; + driverModules: SelectionEntry[]; + gunnerModules: SelectionEntry[]; + + primaryammotypes?: AmmoData[]; + secondarymmotypes?: AmmoData[]; + + elevator: string; + elevator_dir: string; +}; + +export const VehicleSupply = (props) => { + const { act, data } = useBackend(); + const { + vehicles, + primaryWeapons, + secondaryWeapons, + driverModules, + gunnerModules, + primaryammotypes, + secondarymmotypes, + elevator, + elevator_dir, + } = data; + return ( + + + + + + +
+ {primaryWeapons?.map((primary) => ( + + act('setprimary', { type: primary.type }) + } + icon="check" + content="Select" + selected={primary.isselected} + /> + } + > + {!primary.isselected + ? null + : primaryammotypes?.map((ammotype) => ( + + act('set_ammo_primary', { + type: ammotype.type, + new_value: value, + }) + } + value={ammotype.current} + /> + ))} + + ))} +
+
+ +
+ {secondaryWeapons?.map((secondary) => ( + + act('setsecondary', { type: secondary.type }) + } + icon="check" + content="Select" + selected={secondary.isselected} + /> + } + > + {!secondary.isselected + ? null + : secondarymmotypes?.map((ammotype) => ( + + act('set_ammo_secondary', { + type: ammotype.type, + new_value: value, + }) + } + value={ammotype.current} + /> + ))} + + ))} +
+
+
+
+ +